ページ

2011年4月27日

MongoDBの文書保存時のsafeオプション

MongoDBのドキュメントを保存するときはsafeと言うオプションがあります。これは、ドキュメントを保存するときにサーバ側で成功したかどうかのチェックを制御します。簡単にいっちゃえば、Falseの場合はドキュメントの保存時にリクエストを投げっぱなしにするので、データの送信までの時間しかわかんないと言うことです。デフォルトだとFalseになっています。僕のベンチマークのデータをみて@buzztaikiは「MongoDBとCouchDBの保存パフォーマンスの違いってこのオプションの違いで、実際は大差ないんじゃないの?」とdisります。なので、調べてみました。今回はinsertだけです。
グラフにするほどのことでもないですが、グラフにしました。やっぱり、グラフじゃ違いがよく分からないです。数値は、

  • memcache 0.2 m sec
  • MongoDB(No Safe) 0.2 m sec
  • MongoDB(Safe) 0.5 m sec
  • CouchDB 5 m sec


と言うことで、確かにsafeをTrueにすると約2.5倍遅くなります。memcacheとの比較で言えば、十分遅いです。けれども@buzztaikiがdisっていたほど遅くはなりません。やっぱり、CouchDBは遅いです。

@buzztaikiも僕もあんまりCouchDBは好きになれません。少なくともMongoDBを触った後はなおさらです。使いところはあるんですが、基本はキーをがんばって設計しないといけないんですが、それが多分予想以上に大変だと。
それから、MongoDBもキーによる検索はまともな速度ですが、検索条件を複雑にしていくと期待しているような速度では動いてくれないですね。

と言うことで、MongoDBが好きです。


0 件のコメント: