[SQL 쿼리 최적화를 위한 팁] SQL 쿼리 성능 최적화 관련해서 처음 읽었던 왓챠의 블로그 글인데요. 현업에서 실제로 적용해보고 느낀 점을 더해서 공유합니다. 📚 쿼리 최적화: 빠른 쿼리를
[SQL 쿼리 최적화를 위한 팁] SQL 쿼리 성능 최적화 관련해서 처음 읽었던 왓챠의 블로그 글인데요. 현업에서 실제로 적용해보고 느낀 점을 더해서 공유합니다. 📚 쿼리 최적화: 빠른 쿼리를 위한 7가지 체크리스트 - Inefficient 와 Improved 의 예시가 도움이 많이 되었습니다. 1. SELECT 에는 꼭 필요한 컬럼만 💬 SELECT * 은 금물! 모든 컬럼명을 쓰더라도 * 보다 좋습니다. 2. WHERE절에 가급적이면 별도의 연산을 걸지 않는 것 권고 3. LIKE 사용 시 %를 String 앞부분에는 배치하지 않는 것이 좋음 💬 이것도 확실히 속도 차이가 느껴졌어요. 4. SELECT DISTINCT, UNION DISTINCT와 같이 중복 값을 제거하는 연산은 최대한 자제 💬 GROUP BY를 써서 대체하는 방법이 있습니다. 5. 같은 내용의 조건이라면, GROUP BY 연산 시에는 가급적 HAVING보다는 WHERE 절을 사용하자. 💬 특히 이 부분은 해보면서 정말 정말 차이를 크게 느꼈습니다. 6. 3개 이상의 테이블을 INNER JOIN 할 때는, 크기가 가장 큰 테이블을 FROM 절에, INNER JOIN 절에는 남은 테이블을 작은 순서대로 배치하자. but 항상 통용되지는 않음 7. 자주 사용하는 데이터의 형식에 대해서는 미리 전처리된 테이블을 따로 보관/관리하는 것도 좋음 💬 로그 테이블은 기간이 길어지면 DB에 부하가 걸리는 경우가 많은데, 이렇게 필요한 컬럼들로 전처리 된 경량테이블을 개발팀과 협의해서 만들면 효율이 정말 커지는 것 같아요. ✍ 사내 담당 기술부서에 부탁드려서, 쿼리를 날리면 데이터가 어떤 과정을 거쳐 오는지 설명을 들어보는 것도 추천합니다. 사실 저는 지금 보다도 더 모를 때 설명을 들어서 당시에는 이해를 잘 못했는데, 그때를 기점으로 성능 최적화에 관해 본격적으로 고민하기 시작했어요! 혹시 좋은 공부 방법이나 글이 있다면 추천을 부탁드립니다 :)