Перейти к основному содержанию
Движок таблицы (тип таблицы) определяет:
  • Как и где хранятся данные, куда они записываются и откуда читаются.
  • Какие запросы поддерживаются и каким образом.
  • Параллельный доступ к данным.
  • Использование индексов, если они есть.
  • Возможно ли многопоточное выполнение запросов.
  • Параметры репликации данных.

Семейства движков

MergeTree

Наиболее универсальные и функциональные движки таблиц для высоконагруженных задач. Общее свойство этих движков — быстрая вставка данных и их последующая фоновая обработка. Движки семейства MergeTree поддерживают репликацию данных (в версиях движков Replicated*), партиционирование, вторичные индексы пропуска данных и другие возможности, недоступные в других движках. Движки семейства:

Log

Легковесные движки с минимальной функциональностью. Они наиболее эффективны, когда нужно быстро записывать данные во множество небольших таблиц (примерно до 1 миллиона строк), а затем читать их целиком. Движки семейства Log:
Движки семейства Log
TinyLog
StripeLog
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.
Последнее изменение 10 июня 2026 г.