我从事多租户 Web 应用程序。有必要清除一些用户容器,这些容器可能相当大,收集了许多文档。我需要能够删除许多文档,例如:
return self::remove(array('LISTID' => $listId), array('safe' => true));
在某些情况下,可能有许多文档符合此标准,例如成百上千甚至几百万。我担心此操作可能会花费很多时间并限制服务器。如果有很多文档,是否值得将此类操作排队以离线删除它们,例如伪代码:
while (there are documents) {
delete(1000 documents);
sleep();
}
我想知道在这种情况下如何通过 mongodb 中较小的部分删除数据。我还注意到,由于某种原因,删除相当多的行在 mongodb 中发生得相当快,我们有在 mongodb 中存储数据的原型,在 mysql 中删除相似数量的行需要更长的时间,但在 mysql 中,表中的每一行都有对其他表的引用有数据,但即使从属表中没有记录,在 mongodb 中似乎要快得多,在 mongodb 中,它将所有数据存储在文档中,但无论如何对我来说似乎很奇怪。或者它可能是多余的?
谢谢你。