跳至主要内容

表引擎

表引擎(表类型)决定

  • 数据如何以及在哪里存储,在哪里写入数据,以及从哪里读取数据。
  • 支持哪些查询以及如何支持。
  • 并发数据访问。
  • 索引的使用(如果有)。
  • 是否可以执行多线程请求。
  • 数据复制参数。

引擎家族

MergeTree

用于高负载任务的最通用和功能最强大的表引擎。这些引擎的共同特点是快速数据插入,随后进行后台数据处理。MergeTree 家族引擎支持数据复制(使用 Replicated* 版本的引擎),分区,辅助数据跳过索引和其他其他引擎不支持的功能。

该家族中的引擎

Log

功能最少的轻量级 引擎。当您需要快速写入许多小型表(最多约 100 万行)并稍后整体读取它们时,它们最有效。

该家族中的引擎

集成引擎

用于与其他数据存储和处理系统通信的引擎。

该家族中的引擎

特殊引擎

该家族中的引擎

虚拟列

虚拟列是表引擎的内建属性,在引擎源代码中定义。

您不应该在CREATE TABLE 查询中指定虚拟列,并且您无法在SHOW CREATE TABLEDESCRIBE TABLE 查询结果中看到它们。虚拟列也是只读的,因此您无法将数据插入虚拟列中。

要从虚拟列中选择数据,您必须在SELECT 查询中指定它的名称。SELECT * 不会返回虚拟列的值。

如果您使用与表虚拟列相同的名称创建表,则该虚拟列将变得不可访问。我们不建议这样做。为了帮助避免冲突,虚拟列名称通常以一个下划线开头。