2016-03-11 47 views
1

我即將在20M文檔中刪除一個集合,是否會將其他集合上的其他插入鎖定?或鎖定數據庫?它的大小約爲20GB,並且存在插入另一個集合中的實時流量。我害怕放棄。mongodb會丟棄收集鎖數據庫嗎?

回答

1

根據文檔,它將 「T ...在受影響的數據庫上獲得寫入鎖定,並將阻止其他操作,直到它完成。」

https://docs.mongodb.org/v2.6/reference/method/db.collection.drop/

+0

我運行在一個較小的集合4GB,但我沒有看到任何連接db.currentOP(),所以我不知道。它也不會回到後面的空間? – Boy

+0

據我所知,它不會返回內存,除非你刪除數據庫。它將用於其他收藏。 – SJFJ

+0

@LJBoy是否回答你的問題? – SJFJ

0

this「液滴收集」是要鎖定整個數據庫中,直到操作完成。 如果您想加快速度,可以逐個刪除所有索引,然後拖放收集。通過這種方式,它應該花費更少的時間來完成。

回答你上面關於空間的問題--mongodb不會釋放由集合使用的空間,要做到這一點,你應該使用repairDatabase。但要非常小心,它會阻塞你的數據庫很長一段時間。另外它至少需要大量的光盤上的可用空間與db