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 строит оптимизирующий индекс по значениям одного или нескольких полей заданной таблицы. Следует помнить, что индексы предназначены для повышения эффективности и быстродействия операций с базами данных, однако в некоторых таблицах затраты на сопровождение индекса перевешивают выгоду от его использования. В этом случае индекс снижает общее быстродействие.
Содержание раздела