Индексы на основе Вдерева Все приведенные до сих пор индексы – это
индексы на основе сбалан сированного дерева (
balancedtree indexes ), чаще называемые
индекса ми на основе Вдерева (
Btree indexes ). MySQL, Oracle Database и SQL
Server используют такие индексы по умолчанию, поэтому если явно не
запросить другой тип индекса, вы всегда получите этот индекс. Как
и следовало ожидать, индексы на основе Вдерева организованы как
деревья с одним или более уровнями
узлов (
branch nodes ), приводящи
ми к единственному уровню
листьев (
leaf nodes ). Узлы используются
для навигации по дереву, тогда как на листьях располагаются факти
ческие значения и информация о местоположении. Например, индекс
на основе Вдерева, созданный для столбца
employee.lname
, мог бы вы
глядеть примерно так, как показано на рис. 13.1.
Если бы был сделан запрос для выбора всех сотрудников, фамилии ко
торых начинаются на
'G'
, сервер нашел бы верхний узел –
корневой узел (
root node ) – и проследовал бы по связи к узлу, отвечающему за фа
милии, начинающиеся с букв от
'A'
до
'M'
. Этот узел, в свою очередь,
направил бы сервер к листу, содержащему фамилии, начинающиеся
с букв от
'G'
до
'I'
. Затем сервер считывал бы значения листа до тех
пор, пока не встретил бы значение, начинающееся не на
'G'
(которым
в данном случае является
'Hawthorne'
).
A – M
N – Z
A – C
D – F
G – I
J – M
N – P
W – Z
Q – S
T – V
Barker
Blake
Fleming
Fowler
Ziegler
Parker
Portman
Roberts
Smith
Tucker
Tulman
Tyler
Gooding
Grossman
Hawthorne
Jameson
Markham
Mason