인덱스 기본 사용법
- 인덱스 기본 사용법은 인덱스를
Range Scan하는 방법을 의미한다.
인덱스를 사용한다는 것은?
글로벌로 시작하는 단어를 찾으려고 하면, 순간적인 눈 동작으로
찾고자하는 단어가 위치한 시작 지점으로 바로 찾아간다. - 수직적 탐색 과정
- ✨ 이렇게 동작할 수 있는 이유는 색인이 가나다 순으로 정렬되어 모여있기 때문이다.
- 스캔하다가 조건을 만족하지 않는 단어를 만나는 순간 멈출 수 있는 이유도 같다.
- 즉, 인덱스를 사용한다는 것은
스캔 시작점과 끝 지점을 알 수 있어야 한다는 것이다. - Index Range Scan
반면에
인덱스를 포함하는 단어를 찾으려고 하면, 시작점을 찾을 수 없다.
- ✨ 색인이 정렬돼 있더라도 가공한 값이나 중간값(중간에 포함된 값)으로 스캔 시작점을 찾을 수 없다.
- ❗그렇다고 해서 색인을 사용하지 못하는게 아니라, 색인 전체를 스캔해야 한다. - Index Full Scan
데이터베이스 관점에서 정리하자면
- 인덱스 선두 컬럼을 가공하지 않아야 인덱스를 정상적으로 사용할 수 있다.
- "인덱스를 정상적으로 사용한다"는 것은
인덱스 리프 블록에서 스캔 시작점을 찾아 거기서부터 스캔하다가 멈추는 것을 의미한다.
- 즉, 인덱스 리프 블록 일부만 스캔하는
Index Range Scan을 의미한다.
정리
- 인덱스 컬럼 가공⭕ :
Index Full Scan, 리프 블록 전체 스캔
- 인덱스 컬럼 가공❌ :
Index Range Scan, 리프 블록 일부 스캔
ref. https://product.kyobobook.co.kr/detail/S000001975837