- Как и где хранятся данные, куда они записываются и откуда читаются.
- Какие запросы поддерживаются и каким образом.
- Параллельный доступ к данным.
- Использование индексов, если они есть.
- Возможно ли многопоточное выполнение запросов.
- Параметры репликации данных.
Семейства движков
MergeTree
MergeTree поддерживают репликацию данных (в версиях движков Replicated*), партиционирование, вторичные индексы пропуска данных и другие возможности, недоступные в других движках.
Движки семейства:
Log
Интеграционные движки
Специальные движки
Виртуальные столбцы
CREATE TABLE; они также не отображаются в результатах запросов SHOW CREATE TABLE и DESCRIBE TABLE. Виртуальные столбцы также доступны только для чтения, поэтому вставлять в них данные нельзя.
Чтобы выбрать данные из виртуального столбца, необходимо указать его имя в запросе SELECT. SELECT * не возвращает значения виртуальных столбцов.
Если создать таблицу со столбцом, имеющим то же имя, что и один из виртуальных столбцов таблицы, виртуальный столбец станет недоступен. Мы не рекомендуем этого делать. Чтобы избежать конфликтов, имена виртуальных столбцов обычно начинаются с символа подчёркивания.
-
_table— содержит имя таблицы, из которой были прочитаны данные. Тип: String. Независимо от используемого движка таблицы, каждая таблица включает универсальный виртуальный столбец с именем_table. При выполнении запроса к таблице с движком Merge можно задать константные условия для_tableв выраженииWHERE/PREWHERE(например,WHERE _table='xyz'). В этом случае чтение выполняется только для тех таблиц, которые удовлетворяют условию по_table, поэтому столбец_tableдействует как индекс. При использовании запросов видаSELECT ... FROM (... UNION ALL ...)можно определить, из какой именно таблицы происходят возвращаемые строки, указав столбец_table.