MySQL 쿼리 개선기 - 인덱스를 활용한 정렬보다 Using temporary, Using filesort가 더 빠르다고?
·
우테코/팀 프로젝트 - 투룻
개요이번 글에서는 우테코에서 진행한 투룻 프로젝트를 통해 쿼리 개선을 경험한 내용을 공유하고자 합니다. 프로젝트에서 쿼리 성능을 개선하기 위해 GROUP BY와 JOIN의 순서를 재설계하고, NL(Nested Loop) JOIN의 드라이빙 테이블 크기를 줄이는 작업을 수행했습니다. 이 과정을 통해 쿼리 성능을 최대 264배 개선할 수 있었습니다. 이 글에서는 정렬 시 인덱스를 활용하는 것이 중요하지만, 드라이빙 테이블의 크기가 쿼리 성능에 미치는 영향이 더 클 수 있다는 사실을 다룹니다. 또한 커버링 인덱스를 활용하여 추가적인 성능 개선을 이룬 경험도 함께 다룰 예정입니다.투룻 서비스 소개투룻은 여행기 서비스로, 여행기에 달려있는 태그 기반으로 여행기 목록을 조회하는 기능이 있었습니다. 이 때 여행기 목..