gpt4 book ai didi

Clickhouse:我应该手动优化 MergeTree 表吗?

转载 作者:行者123 更新时间:2023-12-05 04:36:14 25 4
gpt4 key购买 nike

我有一个像这样的表:

创建表测试(id String,timestamp DateTime,somestring String)ENGINE = MergeTree ORDER BY(id,timestamp)

我插入了 100 条记录,然后插入了另外 100 条记录,然后运行选择查询select * from test clickhouse 返回 2 个部分,它们的长度为 100,并且它们是自己排序的。然后我运行查询 optimize table test,它开始返回 1 个部分,其长度为 200 并已排序。那么我应该在所有插入之后运行优化查询吗,它是否会提高选择查询性能,例如 select count(*) from test where id = 'foo'

最佳答案

合并是最终的,可能永远不会发生。这取决于之后发生的插入次数、分区中的部件数、部件的大小。如果输入部分的总大小大于最大部分大小,那么它们将永远不会被合并。

不断合并到一个部分是很不合理的。合并没有这样的目标。相反,目标是拥有最少数量的零件和最少数量的合并。合并会消耗大量的磁盘和处理器资源。

3 小时内将两个 300GB 的部分合并为一个 600GB 的部分毫无意义。合并必须读取、解压缩 600GB、合并、压缩、写回它们,之后 selects 的性能将根本不会增长或增长很小。

关于Clickhouse:我应该手动优化 MergeTree 表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70882701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com