Mysql - 인덱스를 사용한 "ORDER BY" 성능 개선

Mysql - 인덱스를 사용한 "ORDER BY" 성능 개선

fld_date에 색인을 추가하여 "ORDER BY"를 개선할 수 있습니까?

 SELECT * FROM t1 WHERE fld1='XXX' fld2='XXX' ORDER BY fld_date;

쿼리는 where 절에서 (fld1, fld2 - 결합 인덱스)의 인덱스를 사용합니다. ORDER BY가 인덱스와 정확히 일치하지 않으므로 fld_date를 사용하여 인덱스를 추가하면 ORDER BY fld_date 성능을 향상시키는 데 유용합니다. ?

답변1

(fld1, fld2, fld_date)에 인덱스를 추가해야 합니다. fld1 및 fld2가 절에서 정확히 일치하도록 설정된 경우에만 작동하며 또는와 WHERE같은 정확하지 않은 표현식은 순서 지정을 위해 인덱스를 끕니다.<>

답변2

클러스터형 인덱스를 살펴보면 대용량 데이터 세트의 경우 성능을 향상시키는 데 사용할 수 있습니다. 분명히 컴퓨팅 성능이 매우 제한되었을 때 SQL 스타일 DB가 사용했던 것 같습니다.

출처: 저는 처리량 제한으로 인해 데이터베이스에서 실제 값을 선택할 필요가 없도록 인덱스를 사용할 것이라고 언급한 수석 개발자와 협력하고 있습니다.

내가 확인한 문서에 따르면 이는 단지 '기본 키'일 뿐이지만 예전과 동일하지 않으므로 모호한 성능 이점을 얻으려면 파헤쳐야 할 수도 있습니다.

추가 정보는 여기에서 찾을 수 있습니다:https://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html

참조 기사에서 "ORDER BY 최적화에 영향을 미치기"라는 제목을 참조하세요.

관련 정보