2011-06-27 10 views
1

私は自分のプロジェクトで使用するためにMongodbを効果的に1週間学習するように努めてきました。私のプロジェクトでは、巨大な地理位置データを保存し、この情報を保存するのにMongodbが最も適していると思います。さらに、私にとっては非常に重要なスピードで、MongodbはMysqlより速く応答します。1つのプロジェクトでMongodbとMysqlの両方を使用する

しかし、プロジェクトのいくつかの部分ではいくつかの結合を使用しますが、ユーザーの情報をMongodbに保存するかどうかはわかりません。私はいくつかの問題は、書き込みプロセス中にmongodbで発生する可能性があると聞いた。私はコレクションの代わりに(結合の代わりに)mongodbだけを使うべきですか、あるいはそれらの両方を使うべきですか?

+0

"堅牢性"?私は良い文法は "スピード"と言うだろうと思います。 – duffymo

+0

あなたは複雑すぎる – tetris

答えて

3

ほとんどの場合、プロジェクトが巨大でない場合は、プロジェクトに1つのデータベースを選択することをお勧めします。本当に大きなプロジェクト(または一般の企業)、I think長期団体で

  • RDBMSのNoSQL
  • 性の高いトランザクションOLTP用datawarehousing/BIプロジェクト

の組み合わせを使用しますが、より合理的な範囲のものについては、ユースケースの中核をなすものを選んで、すべてに使用してください。

ユーザーデータをmongodbに保存するIMOはうまくいきます。単一のBSONドキュメントでアトミック操作を行うことができるので、「このユーザーネームをアトミックに割り当てる」などの操作が可能です。再実行ログ(--journal)(v1.8 +)、複製、slavedelayedレプリケーションを使用すると、データの安全性をかなり高くすることができます。安全に対する主な議論は、製品が新しいものであり、古いソフトウェアが常により安全であるということです。

非常に複雑なACIDトランザクション(アカウンティングなど)を行う必要がある場合は、RDBMSを使用します。

また、多くのレポートを行う必要がある場合は、特にデータセットが1台のサーバーに収まる場合は、mysqlが現時点では優れている可能性があります。 SQL GROUP BY文は非常に強力です。

3

あなたはMongoDBとMySQLの間でジョインすることはありません。

私はすべてのあなたの声明に同意するのか分からない。相対的な速度は、あなたのユースケースで最もよくベンチマークされたものです。

あなたが本当に理解する必要があることは二つのデータベースの相対的な強みと弱みが何であるかです:

  • MySQLはリレーショナルモデル、セット、およびACIDをサポートしています。 MongoDBはそうではありません。
  • MongoDBは、ACIDやトランザクションを先送りできる文書ベースの問題に適しています。

これらは、あなたの選択の基礎となるはずです。

1

MongoDBには、ジオロケーション作業をサポートするための優れた機能があります。しかし、MySQLよりも必ずしも速くはありません。多くの場合、MySQLがMongoDBより優れていることを示す多数のベンチマークが行われている(例えば、http://mysqlha.blogspot.com/2010/09/mysql-versus-mongodb-yet-another-silly.html)。

私はまだ書いている間にMongoDBが情報を失うことに問題があると言いました。あなたがMongoDBを使いたいのであれば、データベースの '関連付け'をやりなおす必要がなく、必要になった場合にのみユーザーをMySQLに移行することを避けることもできます。

+2

チューニングされたMySQLは、ほとんどの単純なCRUDでMongoDBを上回るでしょうか?これは、インサート、インデックス、クエリの種類、データセットのサイズ、マシン上のRAMの量などを知らなくても大胆な記述です。ベンチマークのみがそのようなステートメントを証明することができます。 –

関連する問題