本文隶属于专栏《大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和参考文献请见大数据技术体系
ClickHouse 的通用优化配置如下表所示,大部分配置需要根据线上实际楼况进行优化,具体需要优化的配置可参考官方文档:
https://clickhouse.tech/docs/en/operations/settings/query-complexity
https://clickhouse.tech/docs/en/operations/settings/
配置名 | 推荐配置 | 说明 |
---|---|---|
max_server_memory_usage_to_ram_ratio | 机器内存的 90% | 占用物理机内存比例 |
max_memory_usage | 根据单查询内存使用量和并发合理调整 | 单查询最大使用内存量 |
background_pool_size | CPU 核心数的两倍 | 后台 Merge 操作的线程数 |
max_parts_in_total | 1000000 | 单机最大part个数 |
parts_ to_delay_insert | 3000 | 单个分区下的活跃 part 数超过该值后,会延迟新的写人 parts_to_throw_insert |
old_parts_lifetime | 0表示立即删除旧的part, 根据业务需求调整 | 后台合并和数据过期后旧的 part 保留的时间 |
max_ concurrent_queries | 根据机器资源调整 | 某个 MergeTree 的最大查询数 |
max_bytes_before_external_group_by | 推荐开启,具体值为 max_memory_usage 的一半 | Group by 过程允许数据落盘 |
用户在查询数据时,可以参考如下几点对 SQL 进行优化:
用户在创建表时,可以参考如下几点: