问题
如何查看正在执行或排队等待的变更数量?
答案
如果你对表执行了大量 ALTER 或 UPDATE 语句,监控正在执行或排队中的变更数量就很重要。这些查询会重写数据分区片段,而且不是原子操作——它们会按各自创建时对应的分区片段排序,并按该顺序应用到每个分区片段上。有关变更的更多详细信息,请参阅文档。
每个变更都会在 system.mutations 表中生成一条记录。执行大量变更时,你可以通过以下方式监控正在运行和排队中的变更数量:
SELECT
hostname() AS host,
count()
FROM clusterAllReplicas('default', 'system.mutations') WHERE not is_done
GROUP BY host;我们也建议阅读这篇最近发布的关于更新和删除的博客文章。