CLUSTER
Кластеризация таблицы по заданному индексу.
Синтаксис:
CLUSTER индекс ON таблица
Параметры:
- индекс. Имя индекса, используемого при кластеризации.
- таблица. Имя таблицы, для которой производится кластеризация.
Результаты:
- CLUSTER. Сообщение выдается при успешной кластеризации таблицы.
- ERROR: CLUSTER: "индекс" is not an index for table "таблица". Ошибка – попытка кластеризации индекса, не относящегося к заданной таблице.
- ERROR: Index "индекс" does not exist. Ошибка – индексе заданным именем не найден в текущей базе данных.
- ERROR: Relation "таблица" does not exist. Ошибка – таблица с заданным именем не найдена в текущей базе данных.
- ERROR: Relation "производная_таблица" Inherits from "таблица". Ошибка – у заданной таблицы имеется производная таблица.
Описание
Команда CLUSTER производит кластеризацию таблицы по заданному индексу. Таблица должна существовать, индекс также должен существовать и относиться к указанной таблице.
В процессе кластеризации содержимое таблицы упорядочивается так, чтобы повысить эффективность поиска по конкретному индексу. Кластеризация является "разовой" операцией; чтобы провести повторную кластеризацию, команду CLUSTER необходимо выполнить заново.
Внимание
Во время кластеризации записи таблицы копируются во временную таблицу в порядке, определяемом заданным индексом, после чего временная таблица переименовывается в исходную. Таким образом, кластеризация приводит к уничтожению остальных индексов.
Пример
Следующая команда производит кластеризацию таблицы subjects на базе индекса subjects_pkey:
booktown=# CLUSTER subjects_pkey ON subjects; CLUSTER