본문 바로가기

SQL

효율적인 SQL 코드 작성하기

 

3주차 SQL 기초와 데이터 분석

SQL 쿼리 문법을 활용하여 데이터 분석을 진행하기(4)

 

학습 주제: 효율적인 SQL 코드 작성하기

 

 

1. 테이블을 집합으로 생각하기

 

--> 최대한 작게 만들어 놓고 JOIN 하기

 

2. *, % 사용 지양하기

 

--> LIMIT 걸고 조회하기, 파티션이 있는 테이블인지 확인하고 파티션을 필터 조건으로 걸고 조회하기

SELECT clk_index,user_name, product_id
FROM clicks
WHERE date = '20231104'
LIMIT 10

 

 

--> 컬럼 수가 많은 테이블을 조회할 때 SELECT * 지양하기

 

--> LIKE 사용 시 % 제한적으로 사용하기

아래 예시에서 '23FW%' 대신 '23FW__' 쓴 것처럼

SELECT product_id, name
FROM products
WHERE name LIKE '23FW__'
LIMIT 10

 

 

3. 데이터 타입 잘 확인하기

 

--> 비교 연산자 쓸 때

--> WHERE 절에서 함수 적용 지양하기(index 못 써서 속도 느려짐, 쿼리 무거워짐)

 

4. JOIN 시 유의할 점

 

- JOIN 하는 테이블 간의 관계 고려하기(1:1, 1:n, n:n)

- 데이터 중복 있는지 확인

- 여러 가지 쿼리 방식 고려하기

 

5. 가독성 높이는 방법

 

- 서브쿼리보다는 WITH 구문이 가독성이 좋다

- WITH 절을 사용할 때 각 블록 이름을 잘 지정하자

- 쿼리가 복잡해지면 중간중간 주석 작성

 

 

공부하며 어려웠던 내용

 

아직 아주 복잡한 테이블을 갖고 쿼리를 작성해본 적은 없어서 크게 와닿지는 않았지만 SQL 튜닝 자체를 전문으로 하는 분들도 있는 만큼 꼭 짚고 넘어가야 하는 부분인 것 같다.

 

결국 모든 언어가 똑같다. 주석 잘 달기, 무겁지 않게, 여러 방법 생각해보기, 등등

무엇보다 언어의 구조를 잘 알면 위에 적은 것들을 애쓰며 외우지 않아도 저절로 적용할 수 있을 것이라 믿는다. 제대로 된 개념을 가지고 많이 연습해보는 것만이 살길

 

코드를 작성하는 마음가짐은 배려하는 마음가짐 같다 컴퓨터를 배려하고 나중에 읽을 사람을 배려하고

 

'SQL' 카테고리의 다른 글

데이터 웨어하우스, AWS, Redshift  (0) 2024.03.18
NBA Players 실전 데이터 분석  (2) 2024.03.08
데이터 타입  (0) 2024.03.06
테이블 결합: JOIN, UNION, WITH  (0) 2024.03.05
DB Fiddle, 데이터 조회, 기초 SQL 함수  (0) 2024.03.04