部分过多问题
本指南属于一系列基于社区线下交流与经验分享整理而成的内容。若想获取更多真实场景下的解决方案和见解,可以按具体问题浏览。 需要更多性能优化方面的建议?请查看性能优化社区洞见指南。
理解问题
ClickHouse 会抛出 “Too many parts” 错误,以避免出现严重的性能下降。过多的小 part 会引发多种问题:查询期间需要读取和合并更多文件,导致查询性能下降;内存使用增加,因为每个 part 都需要在内存中保存元数据;压缩效率降低,因为更小的数据块压缩效果更差;由于更多的文件句柄和寻道操作而带来更高的 I/O 开销;以及后台合并变慢,使合并调度器的工作量显著增加。
相关文档
及早识别问题
此查询通过分析所有活动表的分片数量和大小来监控表碎片情况。它会识别出分片数量过多或过小、可能需要合并优化的表。请定期使用此查询,在碎片问题影响查询性能之前将其发现。
视频资源
- Fast, Concurrent, and Consistent Asynchronous INSERTS in ClickHouse - 由 ClickHouse 团队成员讲解异步 INSERT 及 “too many parts” 问题
- Production ClickHouse at Scale - 来自可观测性平台的真实大规模生产环境批处理策略