DB
Index 안타는 경우
pastime
2021. 12. 30. 15:34
728x90
- index 칼럼의 변형
index name 이 바뀌는 경우 DMBS가 index를 사용하지 않는다. - Not 또는 in 연산자 사용
not일 경우 무조건 안타는것도 아니다. not에 사용되는 비율에 따라 인덱슬르 타지 않는 경우 존재
마찬가지로 in 경우도 in에 포함된 데이터들의 비율이 매우 높다면 Full scan을 한다 - like문장에서 범위를 전체 지정시
%가 앞쪽에 존재시 정렬 순서를 사용할수 없어서 full scan을 한다
뒤쪽에 존재시 index를 탄다 - 조건이 잘못되어 적용못하는 경우
2개의 칼럼이 둘다 index 걸려있어도 최적의 or 조건을 뽑기 어려울경우 full scan - 내부적으로 데이터 형변환이 일어난 경우
Date타입의 컬럼의 경우 내부적 형변환이 일어난다 이경우 date_format등을 사용하여야 한다. - 조건절에 null 또는 not null을 사용하는 경우
- 옵티마이저의 선택
옵티마이저의 선택에 따라 인덱스를 탈수도 안탈수도있다. 실행 결과를 추적해서 query 수정이 필요
728x90