핵심 메시지

ORDER BY 비용은 "정렬을 새로 해야 하는가"에서 갈립니다.

정렬 순서를 인덱스가 이미 가지고 있으면 그대로 읽고, 그렇지 않으면 결과 집합을 다시 정렬하므로 메모리와 디스크 비용이 커집니다.

공통 질문
정렬 기준 컬럼 순서를 인덱스로 바로 읽을 수 있는가? 추가 Sort 유무를 여기서 결정
INDEX OK

인덱스 순서 그대로 읽음

DB가 이미 정렬된 순서로 레코드를 꺼내므로 결과가 곧바로 맞춰집니다.

처리 Index Scan으로 필요한 순서대로 읽음
추가 작업 별도 Sort 단계가 붙지 않음
운영 의미 대량 데이터에서도 CPU·메모리 부담이 상대적으로 작음
SEPARATE SORT

결과를 모아 다시 정렬

인덱스가 순서를 해결하지 못하면 조회 뒤에 Sort가 추가되어 비용이 커집니다.

1
조회 결과를 먼저 모음 정렬 대상 행 수가 많을수록 부담이 커집니다.
2
메모리에서 Sort 수행 작은 결과 집합은 여기서 끝나지만 비용은 여전히 추가됩니다.
3
메모리를 넘으면 디스크까지 사용 임시 파일 정렬이 붙으면 대량 데이터에서 급격히 느려질 수 있습니다.
실행 계획 단서

Using filesort 또는 Sort가 보이면 이 경로를 타는 경우입니다.