Создание и изменение групп колонок

Важно

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

Механизм групп колонок позволяет увеличить производительность операций неполного чтения строк путем разделения хранения колонок строковой таблицы на несколько групп. Наиболее часто используемый сценарий — организация хранения редко используемых атрибутов в отдельной группе колонок.

Создание группы колонок

ADD FAMILY — создаёт новую группу колонок в строковой таблице. Приведенный ниже код создаст в таблице series_with_families группу колонок family_small.

ALTER TABLE series_with_families ADD FAMILY family_small (
    DATA = "ssd",
    COMPRESSION = "off"
);

Изменение групп колонок

При помощи команды ALTER COLUMN можно изменить группу колонок для указанной колонки. Приведённый ниже код для колонки release_date в таблице series_with_families сменит группу колонок на family_small.

ALTER TABLE series_with_families ALTER COLUMN release_date SET FAMILY family_small;

Две предыдущие команды можно объединить в один вызов ALTER TABLE. Приведённый ниже код создаст в таблице series_with_families группу колонок family_small и установит её для колонки release_date.

ALTER TABLE series_with_families
  ADD FAMILY family_small (
      DATA = "ssd",
      COMPRESSION = "off"
  ),
  ALTER COLUMN release_date SET FAMILY family_small;

При помощи команды ALTER FAMILY можно изменить параметры группы колонок.

Изменение типа хранилища

Приведённый ниже код для группы колонок default в таблице series_with_families сменит тип хранилища на rot:

ALTER TABLE series_with_families ALTER FAMILY default SET DATA "rot";

Примечание

Доступные типы устройств хранения зависят от конфигурации кластера YDB.

Изменение кодека сжатия

Приведённый ниже код для группы колонок default в таблице series_with_families сменит кодек сжатия на lz4:

ALTER TABLE series_with_families ALTER FAMILY default SET COMPRESSION "lz4";

Изменение режима кэширования

При переключении режима кэширования на in_memory для существующей таблицы через команду ALTER TABLE, все страницы, которые ещё не находятся в памяти, будут подгружены автоматически.

Если для таблицы ранее был активирован режим in_memory, а затем через ALTER TABLE установлен режим кэширования regular, все находящиеся в памяти страницы сохраняются, но впоследствии могут вытесняться из памяти согласно общей политике кэширования.

Приведённый ниже код для группы колонок default в таблице series_with_families сменит режим кэширования на in_memory:

ALTER TABLE series_with_families ALTER FAMILY default SET CACHE_MODE "in_memory";

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

Предыдущая
Следующая