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 |
댓글