表引擎概述 本页面介绍了云数据库ClickHouse的表引擎。 表引擎 表引擎(即表的类型)决定了: 数据的存储方式和位置,写到哪里以及从哪里读取数据。 支持哪些查询以及如何支持。 并发数据访问。 索引的使用(如果存在)。 是否可以执行多线程请求。 数据复制参数。 引擎类型 MergeTree MergeTree是云数据库ClickHouse的主要存储引擎,按主键排序存储数据,支持索引、分区和复制,提供高速写入和实时分析查询。 该类型的引擎: MergeTree ReplacingMergeTree SummingMergeTree AggregatingMergeTree CollapsingMergeTree VersionedCollapsingMergeTree GraphiteMergeTree 日志 轻量级的小数据量存储,按插入顺序存储数据,无序,超高速写入,但没有索引。 该类型的引擎: TinyLog StripeLog Log 集成引擎 用于与其他的数据存储与处理系统集成的引擎。 该类型的引擎: Kafka MySQL ODBC JDBC HDFS 用于其他特定功能的引擎 该类型的引擎: Distributed MaterializedView Dictionary Merge File Null Set Join URL View Memory Buffer 虚拟列 虚拟列是表引擎组成的一部分,它在对应的表引擎的源代码中定义。 您不能在 CREATE TABLE 中指定虚拟列,并且虚拟列不会包含在 SHOW CREATE TABLE 和 DESCRIBE TABLE 的查询结果中。虚拟列是只读的,所以您不能向虚拟列中写入数据。 如果想要查询虚拟列中的数据,您必须在SELECT查询中包含虚拟列的名字。SELECT 不会返回虚拟列的内容。 若您创建的表中有一列与虚拟列的名字相同,那么虚拟列将不能再被访问。我们不建议您这样做。为了避免这种列名的冲突,虚拟列的名字一般都以下划线开头。 合并树引擎示例