CREATE INDEX
CREATE INDEX
Создает индекс для таблицы.
Синтаксис
CREATE [ UNIQUE ] INDEX индекс ON таблица
[ USING тип ] ( поле [ класс ] [, ...] )
CREATE [ UNIQUE ] INDEX индекс ON таблица
[ USING тип ] ( функция ( поле [....])[ класс ] )
Параметры
- UNIQUE. Необязательное ключевое слово UNIQUE. При его присутствии база данных автоматически проверяет наличие повторяющихся значений в поле (или группе полей), для которых создается индекс. Проверка происходит как при создании индекса, так и при каждом включении данных в таблицу. В дальнейшем PostgreSQL выдает ошибку при выполнении команд INSERT или UPDATE, в результате которых в индексе появляются повторяющиеся значения и команда завершается неудачей.
- индекс. Имя создаваемого индекса.
- таблица. Имя таблицы, в которой создается индекс.
- тип. Алгоритм, используемый при построении индекса. Допустимы три значения:
- btree — реализация на базе В-деревьев Лемана-Яо с высокой степенью параллельности;
- rtree — реализация па базе стандартных R-деревьев с использованием квадратичного разбиения по алгоритму Гуттмана;
- hash — реализация на базе алгоритмов линейного хэширования.
Результаты
- CREATE. Сообщение возвращается при успешном создании индекса.
- ERROR: Cannot create Index: 'индекс' already exists. Ошибка— индекс с указанным именем уже существует.
- ERROR: DefineIndex: attribute "поле" not found. Ошибка — заданное иоле не существует в индексируемой таблице.
- ERROR: DefineIndex: relation "таблица" not found. Ошибка — заданная таблица не существует в подключенной базе данных.
Описание
Команда CREATE INDEX строит оптимизирующий индекс по значениям одного или нескольких полей заданной таблицы. Следует помнить, что индексы предназначены для повышения эффективности и быстродействия операций с базами данных, однако в некоторых таблицах затраты на сопровождение индекса перевешивают выгоду от его использования. В этом случае индекс снижает общее быстродействие.