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