Добавление, удаление и переименование вторичного индекса

Внимание

Поддерживается только для строковых таблиц. Поддержка функциональности для колоночных таблиц находится в разработке.

Добавление индекса

ADD INDEX — добавляет индекс с указанным именем и типом для заданного набора колонок в строковых таблицах. Приведенный ниже код добавит глобальный индекс с именем title_index для колонки title.

ALTER TABLE `series` ADD INDEX `title_index` GLOBAL ON (`title`);

Могут быть указаны все параметры индекса, описанные в команде CREATE TABLE

Также добавить вторичный индекс можно с помощью команды table index YDB CLI.

Изменение параметров индекса

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

Примечание

В настоящее время задание настроек партиционирования вторичных индексов при создании индекса не поддерживается ни в операторе ALTER TABLE ADD INDEX, ни в операторе CREATE TABLE INDEX.

ALTER TABLE <table_name> ALTER INDEX <index_name> SET <partitioning_setting_name> <value>;
ALTER TABLE <table_name> ALTER INDEX <index_name> SET (<partitioning_setting_name_1> = <value_1>, ...);

Примечание

Эти настройки нельзя вернуть к исходным.

  • <value> - новое значение параметра. Возможные значения включают:

    • ENABLED или DISABLED для параметров AUTO_PARTITIONING_BY_SIZE и AUTO_PARTITIONING_BY_LOAD
    • для остальных параметров — целое число типа Uint64

Пример

Код из следующего примера включает автоматическое партиционирование по нагрузке для индекса с именем title_index в таблице series и устанавливает ему минимальное количество партиций равным 5:

ALTER TABLE `series` ALTER INDEX `title_index` SET (
    AUTO_PARTITIONING_BY_LOAD = ENABLED,
    AUTO_PARTITIONING_MIN_PARTITIONS_COUNT = 5
);

Удаление индекса

DROP INDEX — удаляет индекс с указанным именем. Приведенный ниже код удалит индекс с именем title_index.

ALTER TABLE `series` DROP INDEX `title_index`;

Также удалить вторичный индекс можно с помощью команды table index YDB CLI.

Переименование вторичного индекса

RENAME INDEX — переименовывает индекс с указанным именем. Если индекс с новым именем существует, будет возвращена ошибка.

Возможность атомарной замены индекса под нагрузкой поддерживается командой ydb table index rename YDB CLI и специализированными методами YDB SDK.

Пример переименования индекса:

ALTER TABLE `series` RENAME INDEX `title_index` TO `title_index_new`;
Предыдущая
Следующая