
# ClickHouse调优思路
ClickHouse的总体性能调优思路为：
1. 首先进行业务场景分析，ClickHouse对于大宽表查询分析具有优势。 例如对于多表复杂Join关联分析和跑批场景不擅长，此场景建议放到Spark进行批处理或其他数仓服务中承载业务。
   
2. 如果经过分析后，场景比较适合ClickHouse组件进行承载，需要从整体上进行性能瓶颈点分析、关键参数调整以及SQL调优。在调优过程中，需要综合系统资源、吞吐量、集群负载等各种因素来分析定位性能问题、设定调优目标、调优达到客户所需目标即可。
ClickHouse调优人员需要对系统软件架构、软硬件配置、数据库架构原理及配置参数、并发控制、查询处理和数据库应用有广泛而深刻的理解和认识，才能在调优过程中找到关键瓶颈点，解决性能问题。
图1调优流程   
![](https://support.huaweicloud.com/devg-rule-mrs/zh-cn_image_0000001894695009.png)
表1调优流程说明 
| 流程      | 描述                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|
| 系统调优    | 对OS操作系统级参数和数据库的调优，充分地利用主机的CPU、内存、I/O和网络资源，提升整个系统查询的吞吐量，同时数据库参数也调整到最优状态。                                                                                                                                                                                                                                                                                                                                      |
| SQL调优   | 审视业务所用SQL语句是否存在可优化空间，包括： - 分析数据分布是否有倾斜，对于大表数据是否平均分布在各个shard；  - 分析建表语句，查看是否有建立分区、一级索引、二级索引、排序键是否指定等；  - 分析查询SQL是否使用了分区和索引，检查查询过滤条件比较频繁的列是否安排在建表时指定的索引及排序键的靠前位置。   |
| 数据库参数调优 | 通过调优数据参数，提升数据库性能，保障数据库稳定运行。                                                                                                                                                                                                                                                                                                                                                                                  |
   
更多信息可参考ClickHouse社区文档相关调优内容<https://clickhouse.com/docs/operations/overview>。
