我在多租戶Web應用程序上工作。有必要清除一些容器的用戶,這些容器可能相當大,有許多文檔正在收集。 我需要能夠刪除許多文件是這樣的:從mongodb中刪除很多文檔
return self::remove(array('LISTID' => $listId), array('safe' => true));
在某些情況下可以有許多文件符合這一標準,類似的十萬甚至上百萬100S。我擔心這個操作可能會花費很多時間和節制服務器。 如果有很多文件,是否值得排隊這樣的操作將其刪除脫機像僞代碼:
while (there are documents) {
delete(1000 documents);
sleep();
}
我不知道如何通過小portios MongoDB中在這種情況下刪除數據。我還注意到,由於某種原因,在mongodb中刪除相當多的行的速度相當快,我們有用mongodb存儲數據的原型,在mysql中刪除相似數量的行需要更長的時間,但在mysql中,表中的每一行都引用了其他表有了數據,但即使在依賴表中沒有記錄時,它在mongodb中似乎也快得多,在mongodb中,它將所有數據存儲在文檔中,但對我而言,似乎相當奇怪。 或者它可能是多餘的?
謝謝。
你有幾個租戶?如果他們不是成千上萬,你可以爲每個租戶收集一個集合並丟棄整個集合(如果你想要做的是刪除一個租戶的所有數據)。不管你做什麼,這幾乎肯定是一種離線的批量式操作。 – Thilo 2012-04-27 06:16:20
它可以成千上萬的租戶,甚至更多。此操作應清除一個列表的數據,租戶可以有多個列表。 – Oleg 2012-04-27 07:22:18