clickhouse优化技巧
文章目录
clickhouse优化技巧
[TOC]
- 执行引擎
- 不要用 join
- 使用 prewhere 代替 where
- 不是用 nullable 【nullable无法被索引】
- 近似去重 【uniq 代替 distinct】
不要用join
clickhouse的本身适用于单宽表,多表连接性能下降的很快,join可以用其他语句替代这些来代替,因为使用join的话,简直是灾难,即使是要join,也不要把大表放在右边。这是由于clickhouse的反人类设计,进行join时,clickhouse会将右表全部加载到内存里,再一条条匹配,速度就会迅速降低。
原文链接:https://blog.csdn.net/qq_43662627/article/details/120249248
使用prewhere替代where
PREWHERE能有效支持过滤,默认是开启的,但仅由系列中的表支持*MergeTree系列引擎
不使用nullable
nullable无法被索引,因此需要,还需要建立特定的文件来标记,因此平常使用建议使用一些标记值替代nullable
近似去重
一些实时的领域,如需要去重,distinct太耗时,可以使用uniq
清理 log表
|
|
文章作者 LYR
上次更新 2021-08-14