TinyLog
该引擎属于日志引擎系列。有关日志引擎的公共属性及其差异,请参见 Log Engine Family。
该表引擎通常用于一次写入方法:一次写入数据,然后根据需要读取多次。例如,您可以使用 TinyLog
类型的表来处理小批量的中间数据。请注意,在大量小表中存储数据效率较低。
查询在单一流中执行。换句话说,该引擎旨在处理相对较小的表(最多约 1,000,000 行)。如果您有许多小表,使用此表引擎是有意义的,因为它比 Log 引擎更简单(需要打开的文件更少)。
Characteristics
- 简单结构:与 Log 引擎不同,TinyLog 不使用标记文件。这减少了复杂性,但也限制了对大数据集的性能优化。
- 单流查询:对 TinyLog 表的查询在单一流中执行,使其适合处理相对较小的表,通常最多 1,000,000 行。
- 适合小表:TinyLog 引擎的简单性使其在管理许多小表时具有优势,因为与 Log 引擎相比,它需要更少的文件操作。
与 Log 引擎不同,TinyLog 不使用标记文件。这减少了复杂性,但也限制了对更大数据集的性能优化。
Creating a Table
有关 CREATE TABLE 查询的详细描述,请参见。
Writing the Data
TinyLog
引擎将所有列存储在一个文件中。对于每个 INSERT
查询,ClickHouse 将数据块附加到表文件的末尾,逐列写入数据。
对于每个表,ClickHouse 写入以下文件:
<column>.bin
:每列的数据文件,包含序列化和压缩的数据。
TinyLog
引擎不支持 ALTER UPDATE
和 ALTER DELETE
操作。
Example of Use
创建表:
插入数据:
我们使用了两个 INSERT
查询在 <column>.bin
文件中创建了两个数据块。
ClickHouse 使用单一流选择数据。结果,输出中行块的顺序与输入中相同块的顺序一致。例如: