데이터베이스에 불필요한 일을 시키지 마
필요한 열이 셋인데 SELECT *를 쓰거나, 쓰지 않는 테이블을 JOIN하거나, 순서가 필요 없는데 LIMIT 전에 ORDER BY를 수행하거나, 앱에서 거를 1만 행을 가져오면 색인이 나쁜 모양을 구해주지 못해. 반복해서 계산하는 비싼 표현식은 캐시하거나 미리 계산해.
최적화 순서
- 열과 행을 줄이고 필터·집계를 SQL로 옮겨.
- EXPLAIN에 문제가 남으면 색인을 더해.
- 자주 읽고 드물게 바뀌는 값만 캐시해.
- 정말 비싼 집계만 구체화된 뷰로 만들어.