簡體   English   中英

SAFE模式下的MongoDB性能

[英]MongoDB performance in SAFE mode

在Java驅動程序中將WriteConcern標志設置為SAFE如何影響MongoDB的性能?

大大降低了速度(如您所預期)。

如果沒有“ SAFE”標志,MongoDB驅動程序將在“ Fire&Forget”模式下運行。 因此,將update命令發送到服務器,然后驅動程序繼續運行。 如果寫入發生錯誤,或者服務器在更改發生之前就死了,則客戶端對此一無所知。

使用“ SAFE”標志,驅動程序同時執行update命令和getLastError()命令。 在數據庫上實際發生更新之前,第二條命令不會完成。 至少,您發送的是兩個命令,而不是一個( 因此速度要慢50% )。

根據我的經驗,它實際上要慢5到20倍。 當然,這是有道理的,因為實際寫入數據是整個過程中比較慢的部分。

請注意,沒有SAFE標志,某些異常將永遠不會發生。 例如,您將永遠不會獲得重復的鍵異常。

如果計划將MongoDB用作典型數據庫(類似於MySQL),則需要至少使用“ SAFE”模式和副本集。 否則,您需要一個框的“ JOURNAL”模式。 如果您使用“日記”模式,則您會發現性能開始像常規SQL一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM