[친절한 SQL 튜닝] 2.2 인덱스 기본 사용법 - Index Range Scan, Index Full Scan

Euiyeon Park·2025년 6월 3일
0

친절한 SQL 튜닝

목록 보기
9/13
post-thumbnail

인덱스 기본 사용법

  • 인덱스 기본 사용법은 인덱스를 Range Scan하는 방법을 의미한다.

인덱스를 사용한다는 것은?

  • 글로벌로 시작하는 단어를 찾으려고 하면, 순간적인 눈 동작으로
    찾고자하는 단어가 위치한 시작 지점으로 바로 찾아간다. - 수직적 탐색 과정
  • ✨ 이렇게 동작할 수 있는 이유는 색인이 가나다 순으로 정렬되어 모여있기 때문이다.
  • 스캔하다가 조건을 만족하지 않는 단어를 만나는 순간 멈출 수 있는 이유도 같다.
  • 즉, 인덱스를 사용한다는 것은
    스캔 시작점과 끝 지점을 알 수 있어야 한다는 것
    이다. - Index Range Scan

반면에

  • 인덱스를 포함하는 단어를 찾으려고 하면, 시작점을 찾을 수 없다.
  • 색인이 정렬돼 있더라도 가공한 값이나 중간값(중간에 포함된 값)으로 스캔 시작점을 찾을 수 없다.
  • ❗그렇다고 해서 색인을 사용하지 못하는게 아니라, 색인 전체를 스캔해야 한다. - Index Full Scan

데이터베이스 관점에서 정리하자면

  • 인덱스 선두 컬럼을 가공하지 않아야 인덱스를 정상적으로 사용할 수 있다.
  • "인덱스를 정상적으로 사용한다"는 것은
    인덱스 리프 블록에서 스캔 시작점을 찾아 거기서부터 스캔하다가 멈추는 것을 의미한다.
  • 즉, 인덱스 리프 블록 일부만 스캔하는 Index Range Scan을 의미한다.

정리

  1. 인덱스 컬럼 가공⭕ : Index Full Scan, 리프 블록 전체 스캔
  2. 인덱스 컬럼 가공❌ : Index Range Scan, 리프 블록 일부 스캔

ref. https://product.kyobobook.co.kr/detail/S000001975837

profile
"개발자는 해결사이자 발견자이다✨" - Michael C. Feathers

0개의 댓글