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 当天的数据。
相关推荐
4t4run7 天前
1、clickhouse 安装
数据库·clickhouse
JackSparrow4148 天前
使用Elasticsearch代替数据库like以加快查询的各种技术方案+实现细节
大数据·clickhouse·elk·elasticsearch·搜索引擎·postgresql·全文检索
梦想与想象-广州大智汇15 天前
MySQL 同步数据到 ClickHouse 方案对比分析
数据库·mysql·clickhouse
Smile_25422041816 天前
clickhouse日志疯涨问题
linux·运维·服务器·clickhouse
计算机魔术师16 天前
【技术硬核 | 存储】ClickHouse 原理与 Langfuse 存储实践:当 LLM Trace 爆炸时,PG 还扛得住吗?
人工智能·clickhouse·工程实践·sbti·职场焦虑
fire-flyer19 天前
ClickHouse系列(九):慢查询、内存 OOM 与稳定性治理
android·clickhouse
fire-flyer19 天前
ClickHouse系列(十):生产架构与最佳实践总结
clickhouse·架构
fire-flyer20 天前
ClickHouse系列(八):ClickHouse 的 UPDATE / DELETE 正确姿势
大数据·数据库·clickhouse
fire-flyer20 天前
ClickHouse系列(七):Materialized View 与多分辨率 Rollup 设计
大数据·数据库·clickhouse·架构
fire-flyer21 天前
ClickHouse系列(二):MergeTree 家族详解
大数据·数据库·clickhouse