性能与优化
本节提供有关提升 ClickHouse 性能的建议和最佳实践。 建议读者在阅读本节之前先查阅核心概念, 其中介绍了改进性能所需掌握的主要概念。
| 主题 | 描述 |
|---|---|
| Query optimization guide | 从这里开始学习查询优化基础知识,涵盖常见场景和性能优化技术,以提升查询执行速度。 |
| Primary indexes advanced guide | 深入了解 ClickHouse 独特的稀疏主索引系统、它与传统数据库的差异,以及实现最优索引策略的最佳实践。 |
| Query parallelism | 学习 ClickHouse 如何通过处理通道和 max_threads 设置并行化查询执行,包括如何检查和优化并行执行。 |
| Partitioning key | 掌握分区键选择,通过实现高效的数据分段裁剪并避免常见分区陷阱,从而显著提升查询性能。 |
| Data skipping indexes | 有策略地应用二级索引以跳过无关数据块,加速对非主键列的过滤查询。 |
PREWHERE optimization | 理解 PREWHERE 如何通过在读取非必要列之前先过滤数据来自动减少 I/O,并了解如何监控其效果。 |
| Bulk inserts | 通过有效地批量插入数据,最大化摄取吞吐量并减少资源开销。 |
| Asynchronous inserts | 利用服务器端批处理提升插入性能,降低客户端复杂度,并提高高频插入场景下的吞吐量。 |
| Avoid mutations | 设计仅追加(append-only)工作流,在保持数据准确性和性能的同时,消除代价高昂的 UPDATE 和 DELETE 操作。 |
| Avoid nullable columns | 尽量使用默认值而不是可空列,以减少存储开销并提升查询性能。 |
Avoid OPTIMIZE FINAL | 理解在什么情况下应该以及不应该使用 OPTIMIZE TABLE FINAL。 |
| Analyzer | 利用 ClickHouse 全新的查询分析器定位性能瓶颈,并优化查询执行计划以提升效率。 |
| Query profiling | 使用采样查询分析器来分析查询执行模式,识别性能热点并优化资源使用。 |
| Query cache | 启用并配置 ClickHouse 内置的查询结果缓存,加速高频执行的 SELECT 查询。 |
| Testing hardware | 在任意服务器上无需安装即可运行 ClickHouse 性能基准测试,以评估硬件能力。(不适用于 ClickHouse Cloud) |