> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Документация по движкам таблиц

# Движки таблиц

Движок таблицы (тип таблицы) определяет:

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

<div id="engine-families">
  ## Семейства движков
</div>

<div id="mergetree">
  ### MergeTree
</div>

Наиболее универсальные и функциональные движки таблиц для высоконагруженных задач. Общее свойство этих движков — быстрая вставка данных и их последующая фоновая обработка. Движки семейства `MergeTree` поддерживают репликацию данных (в версиях движков [Replicated\*](/docs/ru/reference/engines/table-engines/mergetree-family/replication)), партиционирование, вторичные индексы пропуска данных и другие возможности, недоступные в других движках.

Движки семейства:

| Движки MergeTree                                                                                                        |
| ----------------------------------------------------------------------------------------------------------------------- |
| [Обзор семейства MergeTree](/docs/ru/reference/engines/table-engines/mergetree-family/index)                                 |
| [MergeTree](/docs/ru/reference/engines/table-engines/mergetree-family/mergetree)                                             |
| [ReplacingMergeTree](/docs/ru/reference/engines/table-engines/mergetree-family/replacingmergetree)                           |
| [SummingMergeTree](/docs/ru/reference/engines/table-engines/mergetree-family/summingmergetree)                               |
| [AggregatingMergeTree](/docs/ru/reference/engines/table-engines/mergetree-family/aggregatingmergetree)                       |
| [CollapsingMergeTree](/docs/ru/reference/engines/table-engines/mergetree-family/collapsingmergetree)                         |
| [VersionedCollapsingMergeTree](/docs/ru/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree)       |
| [GraphiteMergeTree](/docs/ru/reference/engines/table-engines/mergetree-family/graphitemergetree)                             |
| [CoalescingMergeTree](/docs/ru/reference/engines/table-engines/mergetree-family/coalescingmergetree)                         |
| [Точный и приблизительный векторный поиск](/docs/ru/reference/engines/table-engines/mergetree-family/annindexes)             |
| [Пользовательский ключ партиционирования](/docs/ru/reference/engines/table-engines/mergetree-family/custom-partitioning-key) |
| [Движки таблиц Replicated\*](/docs/ru/reference/engines/table-engines/mergetree-family/replication)                          |
| [Полнотекстовый поиск с текстовыми индексами](/docs/ru/reference/engines/table-engines/mergetree-family/textindexes)         |

<div id="log">
  ### Log
</div>

Легковесные [движки](/docs/ru/reference/engines/table-engines/log-family/index) с минимальной функциональностью. Они наиболее эффективны, когда нужно быстро записывать данные во множество небольших таблиц (примерно до 1 миллиона строк), а затем читать их целиком.

Движки семейства Log:

| Движки семейства Log                                                          |
| ----------------------------------------------------------------------------- |
| [Семейство движков Log](/docs/ru/reference/engines/table-engines/log-family/index) |
| [TinyLog](/docs/ru/reference/engines/table-engines/log-family/tinylog)             |
| [StripeLog](/docs/ru/reference/engines/table-engines/log-family/stripelog)         |
| [Log](/docs/ru/reference/engines/table-engines/log-family/log)                     |

<div id="integration-engines">
  ### Интеграционные движки
</div>

Движки для взаимодействия с другими системами хранения и обработки данных.

Движки семейства:

| Интеграционные движки                                                                              |
| -------------------------------------------------------------------------------------------------- |
| [Движки таблиц для интеграций](/docs/ru/reference/engines/table-engines/integrations/index)             |
| [ODBC](/docs/ru/reference/engines/table-engines/integrations/odbc)                                      |
| [JDBC](/docs/ru/reference/engines/table-engines/integrations/jdbc)                                      |
| [MySQL](/docs/ru/reference/engines/table-engines/integrations/mysql)                                    |
| [MongoDB](/docs/ru/reference/engines/table-engines/integrations/mongodb)                                |
| [Redis](/docs/ru/reference/engines/table-engines/integrations/redis)                                    |
| [HDFS](/docs/ru/reference/engines/table-engines/integrations/hdfs)                                      |
| [S3](/docs/ru/reference/engines/table-engines/integrations/s3)                                          |
| [Kafka](/docs/ru/reference/engines/table-engines/integrations/kafka)                                    |
| [EmbeddedRocksDB](/docs/ru/reference/engines/table-engines/integrations/embedded-rocksdb)               |
| [RabbitMQ](/docs/ru/reference/engines/table-engines/integrations/rabbitmq)                              |
| [PostgreSQL](/docs/ru/reference/engines/table-engines/integrations/postgresql)                          |
| [S3Queue](/docs/ru/reference/engines/table-engines/integrations/s3queue)                                |
| [TimeSeries](/docs/ru/reference/engines/table-engines/integrations/time-series)                         |
| [ArrowFlight](/docs/ru/reference/engines/table-engines/integrations/arrowflight)                        |
| [AzureQueue](/docs/ru/reference/engines/table-engines/integrations/azure-queue)                         |
| [AzureBlobStorage](/docs/ru/reference/engines/table-engines/integrations/azureBlobStorage)              |
| [DeltaLake](/docs/ru/reference/engines/table-engines/integrations/deltalake)                            |
| [ExternalDistributed](/docs/ru/reference/engines/table-engines/integrations/ExternalDistributed)        |
| [Hive](/docs/ru/reference/engines/table-engines/integrations/hive)                                      |
| [Hudi](/docs/ru/reference/engines/table-engines/integrations/hudi)                                      |
| [Iceberg](/docs/ru/reference/engines/table-engines/integrations/iceberg)                                |
| [MaterializedPostgreSQL](/docs/ru/reference/engines/table-engines/integrations/materialized-postgresql) |
| [NATS](/docs/ru/reference/engines/table-engines/integrations/nats)                                      |
| [Paimon](/docs/ru/reference/engines/table-engines/integrations/paimon)                                  |
| [SQLite](/docs/ru/reference/engines/table-engines/integrations/sqlite)                                  |
| [YTsaurus](/docs/ru/reference/engines/table-engines/integrations/ytsaurus)                              |

<div id="special-engines">
  ### Специальные движки
</div>

Движки этого семейства:

| Специальные движки                                                             |
| ------------------------------------------------------------------------------ |
| [Специальные движки таблиц](/docs/ru/reference/engines/table-engines/special/index) |
| [Псевдоним](/docs/ru/reference/engines/table-engines/special/alias)                 |
| [Distributed](/docs/ru/reference/engines/table-engines/special/distributed)         |
| [Словарь](/docs/ru/reference/engines/table-engines/special/dictionary)              |
| [Merge](/docs/ru/reference/engines/table-engines/special/merge)                     |
| [Executable](/docs/ru/reference/engines/table-engines/special/executable)           |
| [File](/docs/ru/reference/engines/table-engines/special/file)                       |
| [Null](/docs/ru/reference/engines/table-engines/special/null)                       |
| [Set](/docs/ru/reference/engines/table-engines/special/set)                         |
| [JOIN](/docs/ru/reference/engines/table-engines/special/join)                       |
| [URL](/docs/ru/reference/engines/table-engines/special/url)                         |
| [View](/docs/ru/reference/engines/table-engines/special/view)                       |
| [Memory](/docs/ru/reference/engines/table-engines/special/memory)                   |
| [Buffer](/docs/ru/reference/engines/table-engines/special/buffer)                   |
| [Внешние данные](/docs/ru/reference/engines/table-engines/special/external-data)    |
| [GenerateRandom](/docs/ru/reference/engines/table-engines/special/generate)         |
| [KeeperMap](/docs/ru/reference/engines/table-engines/special/keepermap)             |
| [FileLog](/docs/ru/reference/engines/table-engines/special/filelog)                 |

<div id="table_engines-virtual_columns">
  ## Виртуальные столбцы
</div>

Виртуальный столбец — это неотъемлемый атрибут движка таблицы, определяемый в исходном коде движка.

Не следует указывать виртуальные столбцы в запросе `CREATE TABLE`; они также не отображаются в результатах запросов `SHOW CREATE TABLE` и `DESCRIBE TABLE`. Виртуальные столбцы также доступны только для чтения, поэтому вставлять в них данные нельзя.

Чтобы выбрать данные из виртуального столбца, необходимо указать его имя в запросе `SELECT`. `SELECT *` не возвращает значения виртуальных столбцов.

Если создать таблицу со столбцом, имеющим то же имя, что и один из виртуальных столбцов таблицы, виртуальный столбец станет недоступен. Мы не рекомендуем этого делать. Чтобы избежать конфликтов, имена виртуальных столбцов обычно начинаются с символа подчёркивания.

* `_table` — содержит имя таблицы, из которой были прочитаны данные. Тип: [String](/docs/ru/reference/data-types/string).

  Независимо от используемого движка таблицы, каждая таблица включает универсальный виртуальный столбец с именем `_table`.

  При выполнении запроса к таблице с движком Merge можно задать константные условия для `_table` в выражении `WHERE/PREWHERE` (например, `WHERE _table='xyz'`). В этом случае чтение выполняется только для тех таблиц, которые удовлетворяют условию по `_table`, поэтому столбец `_table` действует как индекс.

  При использовании запросов вида `SELECT ... FROM (... UNION ALL ...)` можно определить, из какой именно таблицы происходят возвращаемые строки, указав столбец `_table`.
