FirebirdSQL logo
 TABLEVIEW 

Частичные индексы

Если при создании индекса вы можете указать необязательное предложение WHERE, которое определяет условие поиска,ограничивающее подмножество записей таблицы для индексирования. Такие индексы называются частичными индексами.Условие поиска должно содержать один или несколько столбцов таблицы.

Определение частичного индекса может включать спецификацию UNIQUE. В этом случае каждый ключ в индексе должен быть уникальным. Это позволяет обеспечить уникальность для некоторого подмножества строк таблицы.

Частичный индекс можно использовать только в следующих случаях:

  • условие WHERE включает точно такое же логическое выражение, как и определенное для индекса;

  • условие поиска, определенное для индекса, содержит логические выражения, объединенные OR, и одно из них явно включено в условие WHERE;

  • условие поиска, определенное для индекса, указывает IS NOT NULL, а условие WHERE включает выражение для того же поля, которое, как известно, игнорирует NULL.

Ограничения на индексы

Максимальная длина ключа индекса ограничена 1/4 размера страницы.

Ограничения на длину индексируемой строки

Максимальная длина индексируемой строки на 9 байтов меньше, чем максимальная длина ключа.Максимальная длина индексируемой строки зависит от размера страницы и набора символов.

Table 1. Длина индексируемой строки и набор символов

Размер страницы

Максимальная длина индексируемой строки для набора символов, байт/символ

1

2

3

4

6

4096

1015

507

338

253

169

8192

2039

1019

679

509

339

16384

4087

2043

1362

1021

681

32768

8183

4091

2727

2045

1363

Максимальное количество индексов на таблицу

Для каждой таблицы максимально возможное количество индексов ограничено и зависит от размера страницы и количества столбцов в индексе.

Table 1. Число индексов и количество столбцов

Размер страницы

Число индексов в зависимости от количества столбцов в индексе

1

2

3

4096

203

145

113

8192

408

291

227

16384

818

584

454

32768

1637

1169

909