CREATE INDEX¶
DDL-команда CREATE INDEX используется для создания индекса.
Синтаксис¶
Параметры¶
- UNIQUE — ограничение для создания уникального индекса
Примечание
Это ограничение доступно только для индекса TREE по колонкам ключа шардирования.
- INDEX — имя индекса. Соответствует правилам имен для всех объектов в кластере
Имя индекса должно быть уникальным в рамках кластера!
-
IF NOT EXISTS — позволяет избежать ошибки в случае, если такой индекс в кластере уже есть
-
TABLE — имя таблицы. Соответствует правилам имен для всех объектов в кластере
- USING — применяемый тип индекса:
TREE,HASH,RTREE,BITSET
Типы индексов
- TREE (
vinyl,memtx) — универсальный и наиболее предпочтительный тип индекса. Поддерживает поиск по компонентам ключа. Характеристики:- уникальный
- неуникальный
- первичный
- HASH (
memtx) — присутствует для обратной совместимости. Характеристики:- уникальный
- первичный
- RTREE (
memtx) — многомерный индекс, поддерживающий до 20 измерений. Используется, в частности, для индексирования пространственной информации. Характеристики:- неуникальный
- BITSET (
memtx) — используется для поиска по битовым маскам. Характеристики:- неуникальный
- COLUMN — имя колонки. Соответствует правилам имен для всех объектов в кластере
- BLOOM_FPR (
vinyl) — вероятность ложноположительного срабатывания фильтра Блума - RUN_SIZE_RATIO (
vinyl) — соотношение между размерами разных уровней в LSM-дереве - PAGE_SIZE (
vinyl) — размер страницы в байтах, используемой для операций чтения и записи на диск - RANGE_SIZE (
vinyl) — максимальный размер LSM-поддерева по умолчанию в байтах - RUN_COUNT_PER_LEVEL (
vinyl) — максимальное количество файлов на уровне в LSM-дереве - DIMENSION — размерность индекса RTREE
- DISTANCE — способ определения расстояния в индексе RTREE:
EUCLID,MANHATTAN - HINT — оптимизация для индекса TREE:
TRUE— индекс работает быстрееFALSE— размер индекса уменьшается вдвое
- WAIT APPLIED — при использовании этого параметра контроль
пользователю будет возвращен только после того как данная операция
будет применена либо во всем кластере (
GLOBALLY), либо в рамках текущего инстанса (LOCALLY)
См. также:
Примеры¶
Тестовые таблицы
Примеры использования команд включают в себя запросы к тестовым таблицам.
CREATE INDEX product_quantity
ON deliveries
USING TREE
(product, quantity)
WITH (
HINT = true,
BLOOM_FPR = 0.05,
RUN_SIZE_RATIO = 3.5,
PAGE_SIZE = 8192,
RANGE_SIZE = 1073741824,
RUN_COUNT_PER_LEVEL = 2
)
OPTION (
TIMEOUT = 3.0
);