Ну, смотри.
Последовательность ключевых полей определяет последовательность физической сортировки (т.е. порядка следования записей в физической таблице). Т.е., если имеем 4 ключевых поля A, B, C и D, каждое из которых может принимать два значения, то порядок следования записей будет следующим:
=============================
A1 B1 C1 D1
A1 B1 C1 D2
A1 B1 C2 D1
A1 B1 C2 D2
A1 B2 C1 D1
A1 B2 C1 D2
A1 B2 C2 D1
A1 B2 C2 D2
A2 B1 C1 D1
A2 B1 C1 D2
A2 B1 C2 D1
A2 B1 C2 D2
A2 B2 C1 D1
A2 B2 C1 D2
A2 B2 C2 D1
A2 B2 C2 D2
============================
Такой строгий порядок следования позволяет применять технологию двочного поиска.
Но несложно увидеть, что, если мы сделаем поиск, в котором будет условие для поля C, но не будет условий для полей A и B, то двоичный поиск использовать не получится и придется просматривать все записи таблицы последовательно (т.к. не будет четкой локализации искомых записей - они могут оказаться, где угодно).
Вторичный индекс - это просто таблица с номерами записей, показывающая, как были бы расположены записи при альтернативном порядке сортировки.
Т.е., в вышеприведенном примере 16 записей. Если их пронумеровать, то при альтернативном порядке сортировки D, C, B, A, вторичный индекс будет выглядеть примерно следующим образом:
===============
1
9
5
13
...и т.д.
_________________ Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы
|