INDEX

Внимание

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

Конструкция INDEX используется для определения вторичного индекса для строковых таблиц:

CREATE TABLE table_name (
    ...
    INDEX <index_name> GLOBAL [SYNC|ASYNC] ON ( <index_columns> ) COVER ( <cover_columns> ),
    ...
)

где:

  • index_name — уникальное имя индекса, по которому будет возможно обращение к данным.
  • SYNC/ASYNC — синхронная или асинхронная запись в индекс, если не указано — синхронная.
  • UNIQUE — создаёт индекс с гарантией уникальности для вставляемых значений.
  • index_columns — имена колонок создаваемой таблицы через запятую, по которым возможен поиск в индексе.
  • cover_columns — имена колонок создаваемой таблицы через запятую, которые будет сохранены в индексе дополнительно к колонкам поиска, давая возможность получить дополнительные данные без обращения за ними в таблицу.

Примеры создания таблиц со вторичным индексом

CREATE TABLE my_table (
    a Uint64,
    b Uint64,
    c Utf8,
    d Date,
    INDEX idx_d GLOBAL ON (d),
    INDEX idx_ba GLOBAL ASYNC ON (b, a) COVER (c),
    INDEX idx_bc GLOBAL UNIQUE SYNC ON (b, c),
    PRIMARY KEY (a)
)
CREATE TABLE my_table (
    a Uint64 NOT NULL,
    b Uint64,
    c Utf8,
    d Date,
    INDEX idx_d GLOBAL ON (d),
    INDEX idx_ba GLOBAL ASYNC ON (b, a) COVER (c),
    PRIMARY KEY (a)
)
WITH (
    STORE = COLUMN
);
Предыдущая
Следующая