더북(TheBook)

인덱스, 특히 B-tree 인덱스는 인덱스로 만든 컬럼의 데이터를 정렬해 둔다. 이것은 인덱스를 사용하면 ORDER BY 절에 명시된 대로 정렬하는 연산을 피할 수 있다는 의미다. 실제로 정렬된 인덱스는 정렬 작업을 줄일 뿐만 아니라 모든 데이터를 처리하지 않고도 첫 번째 결과 집합을 반환할 수 있는 파이프라인 효과를 볼 수 있다. 이런 효과를 내려면 WHERE 절에서 사용할 인덱스 컬럼을 ORDER BY 절에서도 동일한 순서로 사용해야 한다.

데이터베이스는 양방향으로 인덱스를 읽을 수 있다는 점에 유의하자. 이 말은 ORDER BY 절에 명시된 것과는 정반대 방향으로 인덱스 범위를 스캔하더라도 파이프라인 효과를 볼 수 있다는 의미다. 이렇게 하더라도 WHERE 절에 사용된 인덱스의 유용성은 해치지 않는다. 하지만 인덱스를 컬럼 두 개 이상으로 만들 때는 정렬 방향이 중요할 수 있다.

Note ≣

MySQL은 인덱스를 선언할 때 ASC와 DESC를 무시한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.