Иллюстрированный самоучитель по PostgreSQL

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
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.