Добавление, удаление и переименование вторичного индекса
Внимание
Поддерживается только для строковых таблиц. Поддержка функциональности для колоночных таблиц находится в разработке.
Добавление индекса
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>, ...);
-
<table_name>
- имя таблицы, индекс которой нужно изменить. -
<index_name>
- имя индекса, который нужно изменить. -
<partitioning_setting_name>
- имя изменяемого параметра, который должен быть одним из следующих:
Примечание
Эти настройки нельзя вернуть к исходным.
-
<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`;