FirebirdSQL logo

Индекс — это объект базы данных, используемый для более быстрого извлечения данных из таблицы или для ускорения сортировки в запросе.Кроме того, индексы используются для обеспечения ограничений целостности — PRIMARY KEY, FOREIGN KEY, UNIQUE.

В данном разделе описываются вопросы создания индексов, перевода их в активное/неактивное состояние, удаление индексов и сбор статистики (пересчёт селективности) для индексов.

CREATE INDEX

Назначение

Создание индекса для таблицы.

Доступно в

DSQL, ESQL.

CREATE [UNIQUE] [ASC[ENDING] | DESC[ENDING]]
INDEX indexname ON tablename
{(<column_list>) | COMPUTED [BY] (<value_expression>)}
[WHERE <search_condition>]

<column_list> ::= col [, col ...]
Table 1. Параметры оператора CREATE INDEX
Параметр Описание

indexname

Имя индекса.Может содержать до 63 символов.

tablename

Имя таблицы, для которой строится индекс.

col

Столбец таблицы.В качестве столбцов не могут быть использованы поля типа BLOB, ARRAY и вычисляемые поля.

value_expression

Выражение, содержащее столбцы таблицы. Значение этого выражения будут ключами индекса.

search_condition

Условие поиска, содержащее столбцы таблицы. Используется для определения подмножества записей таблицы, которые будут проиндексированы.

Оператор CREATE INDEX создаёт индекс для таблицы, который может быть использован для ускорения поиска, сортировки и/или группирования.Кроме того, индекс может быть использован при определении ограничений, таких как первичный ключ, внешний ключ или ограничениях уникальности.Индекс может быть построен на столбцах любого типа кроме BLOB и массивов.Имя индекса должно быть уникальным среди всех имён индексов.

Note
Индексы в ключах

При добавлении ограничений первичного ключа, внешнего ключа или ограничения уникальности будет неявно создан одноименный индекс.Так, например, при выполнении следующего оператора будет неявно создан индекс PK_COUNTRY.

ALTER TABLE COUNTRY
ADD CONSTRAINT PK_COUNTRY PRIMARY KEY (ID);