학생을 찾는다고 가정해보자.
- 모든 교실을 돌아다니면서 환숭이라는 학생을 찾는다.
- 교무실에 가서 학생 반, 번호 를 확인 한 후 찾아낸다.
위 2가지 방법 중 (2)번이 인덱스라고 이해하면 된다.
책에서도 문자와 관련하여 index(색인) 이 있을 것이다.
교무실에서 학생을 찾을 때, 이름을 기준으로 찾는 것이 빠를까? 아니면 학번을 기준으로 찾는 것이 빠를까?
그것은 주어지는 정보에 따라 다를 것이다. 이것이 인덱스 튜닝이라고 생각하면 된다.
인덱스를 통해 RowID를 획득 후, 테이블에 접근하는 것을 random i/o
라고 한다.
이 i/o 바운드를 최소화 하는 것이 sql 튜닝의 핵심 방법이라고 생각하면 된다.