批量插入
上述机制表明,无论插入规模如何,开销基本是固定的,这使得批量大小成为提升摄取吞吐量最关键的优化手段。批量插入可以将这一固定开销在总插入时间中的占比降到更低,并提升处理效率。
我们建议以至少 1,000 行为一批进行插入,理想情况下在 10,000–100,000 行之间。更少次数但批量更大的插入可以减少写入的数据部分(parts)数量、降低合并负载,并减少整体系统资源使用。
要让同步插入策略有效发挥作用,必须在客户端进行批量处理。
如果你无法在客户端对数据进行批量处理,ClickHouse 支持将批处理转移到服务器端的异步插入(参见)。
提示
无论插入的批量大小如何,我们建议将插入查询的数量控制在每秒大约 1 条插入查询。这样建议的原因在于,创建出来的数据部分会在后台被合并成更大的部分(以优化读查询性能),而每秒发送过多的插入查询可能会导致后台合并无法跟上新部分产生的速度。不过,当你使用异步插入时,可以采用更高的每秒插入查询速率(参见异步插入)。