性能与优化
本节包含了提高 ClickHouse 性能的技巧和最佳实践。我们建议用户在阅读本节之前先阅读 核心概念,该部分涵盖了提高性能所需的主要概念。
主题 | 描述 |
---|---|
查询优化指南 | 从这里开始学习查询优化基础知识,涵盖常见场景和性能技巧,以提高查询执行速度。 |
主索引高级指南 | 深入了解 ClickHouse 独特的稀疏主索引系统,它与传统数据库的不同之处,以及最佳实践以实现最佳索引策略。 |
查询并行性 | 了解 ClickHouse 如何使用处理通道和 max_threads 设置来实现查询执行的并行化,包括如何检查和优化并行执行。 |
分区键 | 精通分区键选择,以通过启用高效的数据分段修剪来显著提高查询性能,避免常见的分区陷阱。 |
数据跳过索引 | 战略性地应用二级索引,以跳过不相关的数据块,加速非主键列上的过滤查询。 |
PREWHERE 优化 | 理解 PREWHERE 如何通过在读取不必要的列之前过滤数据来自动减少 I/O,以及如何监控其有效性。 |
批量插入 | 通过有效地批量插入数据以最大化摄取吞吐量并减少资源开销。 |
异步插入 | 通过利用服务器端批量处理来减少客户端复杂性,提高高频插入的吞吐量,从而改善插入性能。 |
避免变更 | 设计仅附加的工作流,消除成本高昂的 UPDATE 和 DELETE 操作,同时维护数据的准确性和性能。 |
避免可空列 | 在可能的情况下,通过使用默认值而不是可空列来减少存储开销并提高查询性能。 |
避免 OPTIMIZE FINAL | 理解何时该使用和不该使用 OPTIMIZE TABLE FINAL |
分析器 | 利用 ClickHouse 的新查询分析器识别性能瓶颈,并优化查询执行计划以提高效率。 |
查询分析 | 使用抽样查询分析器分析查询执行模式,识别性能热点,并优化资源使用。 |
查询缓存 | 通过启用和配置 ClickHouse 的内置查询结果缓存,加速频繁执行的 SELECT 查询。 |
测试硬件 | 在任何服务器上运行 ClickHouse 性能基准测试,无需安装以评估硬件能力。(不适用于 ClickHouse Cloud) |