跳至主要内容
跳至主要内容

日志表引擎家族

ClickHouse Cloud 中不支持

这些引擎是为需要快速写入许多小表(最多约 100 万行)并在以后将其作为整体读取的场景而开发的。

家族中的引擎

日志引擎
StripeLog
Log
TinyLog

Log 家族的表引擎可以将数据存储到 HDFSS3 分布式文件系统。

此引擎并非用于日志数据。

尽管名称如此,*日志表引擎并非用于存储日志数据。它们仅应用于需要快速写入的小量数据。

通用属性

引擎

  • 将数据存储在磁盘上。

  • 在写入时将数据附加到文件末尾。

  • 支持并发数据访问的锁。

    INSERT 查询期间,表被锁定,并且其他读取和写入数据的查询都会等待表解锁。如果没有数据写入查询,则可以并发执行任意数量的数据读取查询。

  • 不支持 突变

  • 不支持索引。

    这意味着 SELECT 查询范围数据效率不高。

  • 不以原子方式写入数据。

    如果写入操作中断,例如服务器异常关闭,则可能会获得损坏的数据表。

差异

TinyLog 引擎是家族中最简单的引擎,提供的功能最少,效率最低。TinyLog 引擎不支持在单个查询中通过多个线程并行读取数据。它比家族中支持从单个查询并行读取的其他引擎读取数据更慢,并且它使用的文件描述符几乎与 Log 引擎一样多,因为它将每列存储在单独的文件中。仅在简单场景中使用它。

LogStripeLog 引擎支持并行数据读取。读取数据时,ClickHouse 使用多个线程。每个线程处理一个单独的数据块。Log 引擎为表的每一列使用一个单独的文件。StripeLog 将所有数据存储在一个文件中。因此,StripeLog 引擎使用的文件描述符更少,但 Log 引擎在读取数据时提供更高的效率。

    © . This site is unofficial and not affiliated with ClickHouse, Inc.