[MySQL] GROUP BY Optimization
·
Database/MySQL
[MySQL] GROUP BY Optimization MySQL은 GROUP BY 사용 시 대개는 전체 대상 테이블을 스캔한 후 새로운 임시 테이블을 만든 후 사용을 하도록 되어 있다. 하지만 인덱스 접근이 가능하다면 임시 테이블 생성을 피할 수 있다. GROUP BY에 가장 중요한 인덱스 사용 조건은 컬럼들이 호출한 쿼리 순서대로 저장하고 있는지 이다. 인덱스 사용에 성공한다면, 두가지의 방법이 있다. Loose Index Scan: 모든 범위 조건과 함께 그룹화하는 방법. Tight Index Scan: 범위 스캔 후 결과를 그룹화하는 방법. Loose Index Scan 테이블 t1(컬럼 a, b, c, d, e)이 인덱스로 (a, b, c) 를 가지고 있다고 가정해 보겠다. 인덱스 사용 가능 GR..