gpt4 book ai didi

mongodb - 通过查询删除数百万个文档时,对 ReplicaSet 有什么影响?

转载 作者:可可西里 更新时间:2023-11-01 10:01:02 26 4
gpt4 key购买 nike

我有一个包含超过 820 万个文档的集合。我需要通过查询删除其中的 2-3 百万个(一个或两个属性被索引)。

我担心的是让 oplog 变得比我的容量大,然后需要我从备份中重新播种它们,从而导致我的辅助节点落后。

会不会是这样的……

db.my_collection.remove({attribute_1:'xyz'},false);

db.my_collection.remove({attribute_1:'xyz',attribute_2:'abc'},false);

是一个不会对我的辅助节点产生负面影响的单独的 oplog 条目(除了实际删除文档之外)?还是会转化为 2-3 百万次复制操作?

我认为答案是这将是一个操作,我可能需要从中恢复一些碎片,但不一定是 oplog/辅助同步问题。

最佳答案

对于在主服务器上删除的每个文档,您最终会在 oplog 中有一个单独的条目。

因此,如果您在主节点上删除了 300 万个文档,那么您最终会通过辅助节点上的 _id 键删除 300 万个删除语句。

我会对它们进行批处理并根据延迟限制删除,然后压缩或重新同步。

如果您有大量文档移动,您可能需要考虑使用 paddingFactor 集进行压缩。

关于mongodb - 通过查询删除数百万个文档时,对 ReplicaSet 有什么影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18968812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com