日志系列引擎
这些引擎是为了需要写入许多小数据量(少于一百万行)的表的场景而开发的。
这系列的引擎有:
- StripeLog
- Log
- TinyLog
日志引擎的特性
共同点
- 数据存储在磁盘上。
- 写入时将数据追加在文件末尾。
- 不支持突变操作。
- 不支持索引。这意味着
SELECT
在范围查询时效率不高。 - 非原子地写入数据。 如果某些事情破坏了写操作,例如服务器的异常关闭,你将会得到一张包含了损坏数据的表。
不同点
Log
和 StripeLog
引擎支持:
并发写入数据。
INSERT
请求执行过程中表会被锁定,并且其他的读写数据的请求都会等待直到锁定被解除。如果没有写数据的请求,任意数量的读请求都可以并发执行。
并行读取数据。
在读取数据时,ClickHouse 使用多线程。 每个线程处理不同的数据块。
Log
引擎为表中的每一列使用不同的文件。StripeL