2013-01-22 43 views
0

我在Linux上運行MongoDB(2.2),我有幾個問題。在MongoDB中編寫沉重的dml操作

我有很多字段+子字段和一個索引這個領域的架構。

  1. 更新/刪除在索引上完成的速度有多快 - 我大約有3次更新/刪除等等。
  2. 是否有規則,就像10,000次更新之後,您必須壓縮或重建索引?
  3. 在索引中立即顯示的字段中是否有更改?如果沒有,這個更新/刪除有沒有延遲或臨時表?

在此先感謝 - 布蘭登

+0

是的,索引與數據同步更新。沒有延遲。 –

+0

索引被立即更新,但是如果您不執行db.repair()命令而刪除了mongodb中的數據,則釋放的數據將不會被釋放到操作系統,請注意:http://api.mongodb。 org/wiki/current/Excessive%20Disk%20Space.html – cubbuk

+0

如果索引發送到後臺,索引可能會延遲。發佈的數據將被髮送到桶的$刪除列表,每個桶表示被刪除文檔的可能大小。當插入或更新新文檔並且需要移動時,MongoDB將會搜索這些桶的大約30個(或類似的東西),以判斷是否適合新記錄的大小。使用持續增長的文檔可能會導致使用此方法的碎片化,但是您可以在文檔上使用2種大小的填充功能來降低移動風險。 – Sammaye

回答

0
  1. 指數在插入/更新的時間被更新/刪除。關於性能,最好的答案就是測試它。
  2. 不是我會知道的。如果你需要定期壓縮或修復,你也應該有複製(但如果資源允許,你可以在同一主機上)
  3. 是的(好吧,在同一個數據庫連接上 - 在其他情況下可能需要多一點時間但是,如果你遇到這個問題我不回答你啦合適的人;)

話雖如此,我強烈建議你看一看一些演示在http://www.10gen.com/presentations - 我對不起,我不能指出那些特別有趣和有用的,我建議你瀏覽並選擇那些看起來很有趣的東西。

請注意,MongoDB做的事情有很大的不同,並且對於毫無準備的事情有很多問題。然而,一旦你知道如何使用它,它就是一個很棒的數據庫。