我的集合上运行了一个更新操作,它涉及更新数百万行数据。我想监视此操作的进度,并已转到当前操作视图。
numYields 值似乎随着数据库应该做的事情而增加,所以我想知道它是否在每次修改文档时都会增加(update:Multi(。
根据文档:
长时间运行的读取和写入操作,例如查询、更新和 删除,在许多条件下产生。MongoDB操作也可以 写入中单个文档修改之间的收益锁定 影响多个文档的操作,例如使用多个文档的 update(( 参数。
但是,上述段落没有具体说明文档的每次更新是否都会产生,或者是否偶尔在几次更新中发生一次。
有人可以分享一下这个指标是否可靠,以确定作为这个长期运行的操作的一部分更新了多少文档?
有人可以分享一下这个指标是否可靠,以确定作为这个长期运行的操作的一部分更新了多少文档?
否:numYields
仅指示长时间运行的操作已产生。与并发更新没有直接关联,并且定期生成有几个原因,如读取或写入操作是否生成锁中所述?:
- 避免长期存储事务,因为这些事务可能需要在内存中保存大量数据;
- 用作中断点,以便可以终止长时间运行的操作;
- 以允许需要独占访问集合的操作,例如索引/集合删除和创建。
但是,上述段落没有具体说明文档的每次更新是否都会产生,或者是否偶尔在几次更新中发生一次。
收益是周期性的,通常由经过时间或操作/迭代次数等指标控制。