clickhouse 查询优化思路

  • 最重要的是要学会看懂explain ,尤其是下推
  • 创建表时,可以选择表为分布式表。
  • 多个表join ,创建表时根据join 字段,进行分片,让数据在同一个节点进行join ,提高join 效率。
  • 多个表join , 通过创建物化视图的方式,以空间换时间的方法,提前把两个表的数据写到一起,不过这会有一会总量,源表的修改和删除不会同步到物化视图的数据里。
  • 多个表join,如果其它表数据量和字段比较少的情况下,可以直接写成一个大宽表。
  • 多个表join,可以考虑下join 顺序,防止中间结果过大
  • 对于分页场景,有一个思路是,先只把id找出来,然后再根据id去找其他字段,这是因为复杂的查询分页语句,查询会导致全量检索数据做很多计算。
bash 复制代码
select 
id,create_time
from 
table
order by create_time
limit 20 ,0 
  • 对于单条记录的检索,虽然ck不擅长这种检索,但是可以通过跳数索引的方式,也可以过滤大量的数据,提高检索效率。
  • 可以通过分区字段进行过滤。
  • 对于一些下推失败的话,可以把外层的下推条件,下推到查询语句里面。
  • 对于不必要的字段减少查询,尤其是对于列式数据库来说。
  • 使用prewhere 可以提前在读数据层面做一些过滤。
  • 可以把历史数据提前做一步汇总,然后再union 当天的数据。
相关推荐
Sais_Z8 小时前
ClickHouse的学习与了解
数据库·clickhouse
风中凌乱3 天前
ClickHouse-Backup的安装与部署
clickhouse
风中凌乱3 天前
clickhouse集群的安装与部署
clickhouse
白眼黑刺猬3 天前
ClickHouse从入门到企业级实战全解析课程简介
clickhouse
chenglin0167 天前
ClickHouse、Doris、OpenSearch、Splunk、Solr系统化分析
clickhouse·solr·lucene
慕y2747 天前
Java学习第一百一十七部分——ClickHouse
java·学习·clickhouse
zuozewei12 天前
随笔之 ClickHouse 列式分析数据库安装注意事项及基准测试
数据库·clickhouse
牛牛木有坏心眼(大数据进阶)13 天前
linux系统离线环境安装clickhouse客户端
linux·clickhouse
许心月13 天前
Clickhouse#表记录转换为insert语句
clickhouse
许心月13 天前
Clickhouse#记录隐藏字段
clickhouse