2012-02-11 9 views
0

私はmongodbを使ったことはありませんでしたが、テーブル間の関係がないため、不快感を感じます。以前は、マルチテーブルクエリでは、私は結合を使用しますが、私はmongodbを使用している場合は、このようにすべてのマルチコレクションクエリが必要と思われる:コレクションをクエリし、次に別のオブジェクトIDを使用してクエリします。私はこの状況、RDBまたはmongodbに適合するためにどちらが良いか分かりませんか?mongodbを使って大規模なSNSサイトのデータベースに適していますか?

+2

あなたの状況を本当に説明していないので、「この状況に合っている」方が良いかどうかはわかりません。さらに、いずれの方法でもデータの格納と検索を行うことができます。これらのシステムは非常に異なるシステムであることを正しく認識していますが、データの保存と取得の両方を行います。したがって、答えは42です。 – deceze

答えて

1

...この方法では、すべてのマルチコレクションクエリが必要と思われます。コレクションをクエリし、次にobjectidを使用して別のクエリを実行します。

これは、大きなRDBMSシステムではかなり一般的です。顧客が1台のコンピュータと注文がある別のコンピュータがある場合、この同じパターンを使用することになります。

どちらのシステムも、Btreeインデックスを使用して適切なデータを検索しています。サーバーの観点から見ると、JOINメソッドは「クエリコレクションA /クエリコレクションB」メソッドと同じくらい高価です。

正直言って、ほとんどの大きなシステムでは、Memcacheがクエリの前に置かれています。だから、いくつかのSQLクエリに続いて、いくつかのMemcacheクエリを実行することになります。

私はmongodbを使用したことはありませんが、テーブル間の関係がないため、私に不快感を与えます。

現在、世界最大のソーシャルネットワークはSQLテクノロジで動作しているため、明らかに実行できます。もちろん、IGNはMongoDBに社会全体の枠組みを書いていました。

両方の技術が適切であり、両方ともトレードオフがあります。

+0

"世界最大のソーシャルネットワークは現在SQLテクノロジで動作しています"。あなたが参照しているソーシャルネットワークが不思議です。明確にしていただけますか?私はこの主張に疑いを持っています:) – kheya

+0

Facebookは実際にMySQL(https://launchpad.net/mysqlatfacebook/)の独自のバージョンを維持しています。実際、私はそれに専念したエンジニアのうちのいくつかに会ったことがあります(*はい、MySQLエンジニアを雇っています*)。今、私が上記のことを裏付けるために、彼らは基本的に内部的にカサンドラ(AFAIK)を放棄していますが、Memcacheをたくさん使います。 –

関連する問題