카테고리 없음

내일배움캠프_QAQC_사전캠프 13일차 (아티클 스터디)

iron-min 2025. 9. 3. 15:20

SQL 가독성을 높이는 다섯 가지 사소한 습관

 

참조한 아티클 입니다.

https://datarian.io/blog/good-sql-code

 

SQL 가독성을 높이는 다섯 가지 사소한 습관

지독하게 읽기 힘든 SQL문을 해석해 본 적 있으신가요?

datarian.io

 

아티클 내용 정리 - SQL 가독성을 높이는 습관

1. 예약어는 대문자로 예약어에 하이라이팅이 안되는 경우도 있기에 예약어를 대문자로 써주면 컬럼이나 테이블 이름과 구분하기 편하다.
2. 행갈이를 자주하자 select, from, group by 등의 절이 한라인에 있게하지말고 블록을 나눠서 써주자.
3. 행갈이를 더 자주하자 어떤 항목을 빼거나 수정하기위해 주석처리를 해야할 때가 있음.
행을 다 자주 나눠서 항목을 구분하기 쉽게 + 주석처리하기 쉽게 해주자.
4. 주석을 쓰자 코드를 쓴 의도를 짤막하게 주석으로 남겨놓는 습관을 들이자.
코드가 왜 필요한지, 어떻게 동작하는지 남겨논다면 추후에 코드를 이해하거나 수정하는데 도움이 된다.
5. Alias를 잘쓰자 서브쿼리, 코드 Alias를 단순히 a,b 이런식으로 남겨놓는다면 코드를 잘 이해하지 못하게 될 수 있다.
쿼리를 재사용하거나 다른 팀원들이 분석하기 편하도록 변수명을 잘 지어주자.

 ※ 용어정리

   예약어: 프로그래밍 언어에서 미리 사용하기로 약속한 단어로 식별자로 사용할 수 없는 단어를 뜻한다

   Alias: 사용자가 명령어를 다른 이름으로 바꿔서 사용할 수 있는 쉘 내부 명령어.('별칭')

 

추가 아티클 개념 - SQL 쿼리 성능 최적화를 위한 튜닝 팁

https://community.heartcount.io/ko/query-optimization-tips/

 

SQL 쿼리 성능 최적화를 위한 튜닝 팁 6가지 (Query Optimization)

보다 효율적인 데이터 검색 및 추출을 위해 필요한 SQL 쿼리 튜닝 방법을 알려 드려요. 실무에서 더 빠르고 효과적으로 데이터를 처리할 수 있도록 하는 꿀팁 6가지에 대해 알아 보세요.

community.heartcount.io

 

핵심내용 정리

1. 좌변을 연산하지 않을 것 데이터를 변형하는 연산은 가급적 피하고 원본 데이터를 직접 비교하는 조건을 사용하자.
이는 인덱스 활용도를 높여 쿼리 속도를 향상시킴.
2. OR대신 UNION을 사용할것. OR  연산자 대신 UNION을 활용하면 각 조건을 독립적으로 최적화하고 인덱스를 효과적으로 사용할 수 있다.
3. 필요한 Row와 Column 만
선택하여 성능 최적화하기
불필요한 Row와 Column을 제외하고 꼭 필요한 데이터만 조회할 것. 이는 데이터 처리량을 최소화 하여 쿼리 성능을 높인다.
4. 분석 함수를 활용하여
쿼리 성능높이기
ROW_NUMBER(),RANK(),LEAD(),LAG() 등의 분석 함수를 적극 활용하면 복잡한 데이터 분석을 유연하고 효율적으로 수행할 수 있습니다.
5. 와일드카드(%)는 끝에
작성하는 것이 더 좋다
LIKE 연산자와 와일드카드(%)를 사용할 때는 문자열 끝에 와일드 카드를 두는 것이 인덱스 활용에 유리하다.
6. 계산값을 미리 저장해두었다가,
나중에 조회할 것.
복잡한 계산은 실시간으로 처리하기보다는 미리 계산해서 저장해두고 주기적으로 업데이트하는 것이 효율적입니다. 아직 우리수준에서 사용할 필요가 없는 개념입니다.

 ※ 용어정리

   인덱스: 데이터를 찾는 데 사용되는 위치 값, 데이터를 빠르게 찾기 위해 별도의 공간에 정렬되어 저장된 자료구조

   와일드카드: 임의의 문자(열)에 대응시키기 위하여 사용하는 문자

 

+ 모르는 개념

UNION  ▷ 여러쿼리문들을 합쳐서 하나의 쿼리문으로 만들어주는 방법
 ▷ 중복된 값을 제거하고 보여준다.
 ▷ 중복된 값을 제거하는 연산이 추가로 수행되기 때문에 UNION ALL 보다 속도가 느리다
UNION ALL  ▷ UNION과 동일하게 여러 쿼리문들을 합쳐서 하나의 쿼리문으로 만들어주는 방법
 ▷ 중복된 값들을 모두 보여준다.

 

 예시

 

  Join의 경우 새로운 열이 생성되지만 union의 경우 행을 차례대로 생성하여 보여줍니다.

  두개의 테이블에서 데이터를 서칭할때 굉장히 유용할 것 같습니다.

   특정 컬럼만 뽑아주면 요렇게 중복된 값이 제거됩니다.

 

  추가 개념 - With 절

 

  우리 조원들이 서브쿼리대신 with절을 쓰면 깔끔해 보인다길래 찾아봤습니다.

 

 

  위에 가로 안의 with 절을 사용한 서브쿼리 입니다.

  with으로 서브쿼리를 만들어준다음 다시 select를 통해 서브쿼리를 불러오는 쿼리입니다.

  이건 제가 강의에서 배운 ( 서브쿼리 ) 를 이용한 것이구요

 

  비슷하지만 with절은 뭔가 따로 지정해준다는 느낌으로 가독성이 좋은것 같습니다.

  후자의 경우는 a절,b절 이렇게 추가되면 굉장히 복잡해지거든요.

 

  마지막 느낀점

   오늘 SQL 팁들을 알아봤는데 가독성을 높이고 쿼리의 성능을 높여줄 수 있다는 점에서 많이 연습해봐야겠습니다.