306
러닝 SQL
이 인덱스는 성과 이름 또는 성만 검색하는 쿼리에는 유용하지만, 고객의 이름만 검색하는 쿼
리에는 유용하지 않습니다. 이유를 이해하기 위해 상대방의 전화번호를 찾는 방법을 떠올려보
겠습니다. 상대방의 이름과 성을 알면 전화번호부는 성과 이름으로 구성되므로 전화번호부를
사용해서 신속하게 번호를 찾을 수 있습니다. 하지만 그 사람의 이름만 안다면 전화번호부의
모든 항목을 스캔해서 정의한 이름을 가진 모든 항목을 찾아야 합니다.
따라서 다중 열 인덱스를 생성할 때 인덱스를 최대한 유용하게 만들려면 먼저 정의할 열과 두
번째로 정의할 열을 신중하게 고려해야 합니다. 다만 적절한 응답 시간을 보장하기 위해 필요
한 경우 동일한 열 집합을 사용해서 다른 순서로 여러 인덱스를 만드는 것까지 막을 수는 없습
니다.
13.1.2
인덱스 유형
인덱스는 강력한 도구이지만 다양한 유형의 데이터가 있는 만큼 하나의 인덱스로 항상 문제를
해결할 수는 없습니다. 다음 절에서는 다양한 서버에서 사용할 수 있는 다양한 유형의 인덱스
를 설명합니다.
B
-트리 인덱스
지금까지 표시된 모든 인덱스는
B-트리 인덱스
B
-
tree
index
로 더 잘 알려진
균형 트리 인덱스
balanced
-
tree
index
입니다.
MySQL
, 오라클 데이터베이스와
SQL
서버는 모두 디폴트로
B
- 트리 인덱스
를 사용하므로 명시적으로 다른 유형을 요청하지 않는 한
B
- 트리 인덱스를 사용합니다. 예상
할 수 있듯이
B
- 트리 인덱스는
잎 노드
leaf
node
와 하나 이상의
가지 노드 ...