JavaドライバでWriteConcernフラグをSAFEに設定すると、MongoDBのパフォーマンスにどのような影響がありますか?SAFEモードでのMongoDBのパフォーマンス
答えて
期待どおりに大幅に減速します。
"SAFE"フラグがないと、MongoDBドライバは "Fire &忘れる"モードで動作します。したがって、update
コマンドがサーバーに送信され、その後、ドライバーが続行されます。書き込みにエラーがある場合、または変更が行われる前にサーバーが停止した場合、クライアントは何も認識しません。
"SAFE"フラグを使用すると、ドライバはupdate
コマンドとgetLastError()
コマンドの両方を実行します。この2番目のコマンドは、DB上で実際に更新が行われるまで完了しません。少なくとも、1つではなく2つのコマンドを送信しています(だから、の方が50%遅くなります)。
私の経験では実際には5倍から20倍遅くなっています。もちろん、これは理にかなっています。なぜなら、実際にデータを書き込むことはこの部分全体の遅い部分であるからです。
SAFEフラグがないと、特定の例外が発生しないことに注意してください。たとえば、キーの重複の例外は発生しません。
MongoDBを典型的なデータベース(MySQLと同じように)として使用する予定の場合は、少なくともの "SAFE"モードとレプリカセットを使用する必要があります。それ以外の場合は、単一のボックスで「ジャーナル」モードが必要です。私はあなたがジャーナルモードを使用すると、パフォーマンスが通常のSQLのように見えるようになります。
あなたの答えは100%正しいものではありません。 「実際にデータを書き込むことは、この作品全体の遅い部分なので、もちろん、これは理にかなっています。これは必ずしも当てはまりません。「安全な」モードとは、挿入/更新が* memory *に適用されたことを意味します。物事がディスク上にあることを確認するには、 "fsync"が必要です。 – Derick
@Derick:答えには2つの問題があります。 #1:ジャーナル化されていることを確認することで、データがディスク上にあることを確認することもできます(fsyncを待つよりもはるかに高速です)。 #2:私のポストのどこにでも "ディスク"という言葉は言及していません。あなたと私は、MongoDBがディスクにデータを取得することが二次懸案事項であることを知っています。 –
ところで、この質問に標準的な答えをしたいのであれば、実際にはMongoDBのドキュメントにアクセスできます。だから私が一度も使ったことのない言葉や私が決して作ったことがない文句ではなく、MongoDBの文書に100%回答してみませんか? –
- 1. MongoDBでのDateTimeのパフォーマンスへの影響
- 2. MongoDBのパフォーマンス - 複数のデータベースを持つ
- 3. mongoDBのパフォーマンスをテストするPythonのモジュール。
- 4. MongoDBランダムデータセットのパフォーマンスを見つけよう
- 5. mongodbパフォーマンス:文字列の長さ
- 6. MongoDB gridFS - ファイル名の長さ、インデックス、パフォーマンス
- 7. mongoDBがインストールされていないVPSやクラウドサービスでのMongoDBのパフォーマンス
- 8. JavaScriptでのdb.eval()のMongoDBのパフォーマンスpymongoと比較して
- 9. java singleton thread safe
- 10. Visual Source Safe Changelists
- 11. JPL:javax.persistence.Query.setParameter sql-injection safe?
- 12. Visual Source Safe 2005の問題
- 13. キャッシュなしでmongodbのクエリのパフォーマンスを確認する方法
- 14. mongodb:シャーディングはクエリのパフォーマンスを改善できますか?
- 15. MongoDBの最適なパフォーマンス - 永続的な接続の数
- 16. C#:Events&Thread Safe GUIアップデート
- 17. Cruise Control.Net 1.5 + Visual Source Safe + MSBuild.exe
- 18. typescript arrow関数のパラメータ型safe
- 19. SAFEセキュリティのアセンブリからローカルデータベースにアクセス
- 20. 最後に、PHP 5.4 Thread Safeですか?
- 21. javaドライバを使用してMongodbのパフォーマンスを向上
- 22. Visual Source Safe 2005での生活方法は?
- 23. ベンダーのjavascriptファイルをgrunt-safeで連結して使用する
- 24. 信頼モードを使用したMongodb認証がJavaで失敗する
- 25. MongoDB:埋め込みパフォーマンスに関する質問
- 26. MongoDb/C#同時読み取りパフォーマンスが悪い
- 27. 書き込み集中型アプリケーションのMongoDBのパフォーマンスが異常に低い
- 28. mongostatsを使用してmongodb内のパフォーマンスの問題を診断する方法
- 29. MongoDBでのクエリ
- 30. 空白モードのUIDatePickerモードのUIDatePickerModeDateAndTime
これは私が尋ねるばかげた質問かもしれませんが、パフォーマンスが低下すると思って簡単に想像することができます。どれくらい? *あなたのシステムとあなたの*データで自分で測定してください。 –
Mongoはデフォルトで火をつけて忘れるので、本物の質問です。明らかにそれは減速するだろうが、私は他の人々がこれに対処する方法に基づいて答えを探していた – Rand