본문 바로가기
프로젝트(진행중)/MySQL

속도를 고려한 SQL

by 일말고프로젝트 2023. 3. 3.

 

1. SELECT * 자주 쓰지 않기

 

사용하지 않는 데이터를 호출하는 것만으로 속도 저하됨

TEXT 타입 데이터를 호출할 때 더 심해짐

 

2. COUNT(*) 사용하기

 

COUNT(컬럼) 으로 호출할 경우 해당 컬럼의 NULL값을 제외한 COUNT를 가져오게 되는데 이 때 NULL값을 일일이 체크하기 때문에 호출 속도가 저하됨. COUNT(*)는 NULL값의 경우도 모두 COUNT에 추가하기 때문에 더 빠름

 

3. WHERE 조건문의 왼쪽은 순수한 COLUMN만 쓰자

 

WHERE 00 = 00 을 쓸 때 왼쪽에 조건을 걸면 매 ROW 마다 조건을 변형하게 됨

 

4. LIKE쓸 때는 %를 가급적 뒤에만 붙이자

 

%를 앞에 붙이면 ~로 시작하는 문자열을 다 검색해야 해서 연산의 시간이 증가함

 

5. GROUP BY를 써야 한다면 GROUP BY 이전에 조건절로 필요한 데이터를 미리 정의해두자

 

GROUP BY는 조건에 맞는 데이터를 뽑아낸 후 재정렬하는 방법이기 때문에 정렬 이전에 데이터 양이 많아지면 속도가 느려짐. 필요한 데이터만 가져올 수 있도록 조건을 걸어줘야 함

HAVING을 쓰면 GROUP BY 이후에 실행되기 때문에 비효율적인 연산이 

 

6. 인덱스 활용하자

 

컬럼이 유니크하거나 식별 가능한 단일의 값을 사용하면 좋고 PK를 기준으로 검색하면 검색 속도도 향상됨.

 

 

'프로젝트(진행중) > MySQL' 카테고리의 다른 글

프로그래머스 SQL 공부 6  (0) 2023.03.03
프로그래머스 SQL 공부 5  (0) 2023.03.03
프로그래머스 SQL 공부 4  (0) 2023.03.03
프로그래머스 SQL 공부 3  (0) 2023.03.02
프로그래머스 SQL 공부2  (0) 2023.02.27

댓글