본문 바로가기
SQL/MySQL

MySQL 인덱스 강제 지정 / 사용 권장 / 사용 금지 방법 정리

by wakestand 2021. 4. 9.
반응형

 

MySQL 인덱스 조회 생성 수정 삭제 및 타는지 확인방법

MySQL에서 인덱스는 테이블을 빨리 조회하기 위해 테이블 데이터에 포인터를 주는 것인데 인덱스는 책의 목차와도 같아서 특정 컬럼에 인덱스를 지정해주면 테이블 조회 시 인덱스를 이용해 빠

wakestand.tistory.com

MySQL에서 쿼리 수행 시 타는 인덱스는

자체적으로 판단해서 가장 괜찮은 것을 타게 되는데

 

탈만한 인덱스는

조회 쿼리 위에 EXPLAIN을 넣고 조회할 경우

possible_keys 컬럼에서 확인할 수 있다

 

하지만 자체적으로 판단한다고 해도

항상 완벽한 것은 아니기 때문에

FROM 우측에

 FORCE INDEX(인덱스명)

USE INDEX(인덱스명)

IGNORE INDEX(인덱스명)

 

을 넣고 수행할 / 수행하지 않을 인덱스 컨트롤이 가능한데

 

먼저

FORCE INDEX(인덱스명)

은 쿼리 수행 시

지정한 인덱스만 사용하게 만들어준다

 

다음으로

USE INDEX(인덱스명)

은 인덱스 사용 시 지정한 인덱스를 우선적으로 사용한다

하지만 무조건 사용하는 것은 아니기 때문에

쿼리 수행 시 다른 인덱스를 사용하는 것이 낫다고 판단하면

다른 인덱스를 사용하기도 한다

 

마지막으로

IGNORE INDEX(인덱스명)

은 지정한 인덱스를 사용하지 않고

다른 인덱스만 사용하게 만들어 준다

반응형

댓글