質問

CouchDBやCassandraのようなKey-Valueストアに頭を包もうとしています。なぜ有用なのかは理解していますが、MySqlのようなRDBMSを置き換える方法に関しては、わかりません。

これが私が保存する必要があるものだとしましょう:

{123456: {'model' : 'Ford'
          'color': 'blue'
          'MPG': 23}}

次に、青い車をすべて見つける必要があります。

Key-Valueストアは、値を使用してキーをどのように照会しますか? map-reduceが使用される可能性のある箇所を読みましたが、いくつかのプロジェクトのソースを見ると、例が見つかりません。

正しい質問をしているかどうかを教えてください。

役に立ちましたか?

解決

本質的に、キー値ストアを使用している場合、リレーショナルデータベースが内部に持っているのと同じコンポーネントからデータベースを構築しています。これを行う理由は、スケーリングとパフォーマンスをより柔軟に制御できるようにするため、または単純化するためです。

この場合、テーブル行とインデックスに相当するものを2つの別個のものとして保存する必要があります。したがって、色でインデックスを作成する場合は、保存する必要があります

{'blue': {123456}}

インデックステーブルに相当します。

もちろん、一部のキーバリューストアはインデックスと検索のメカニズムを提供するため、すべてに適合する一般的なルールはありません。

他のヒント

本質的にインデックスである別個のキー/値ストアを維持する必要があります。 「青」となるでしょう。キーとして、次に「メイン」からのすべてのIDのリスト青い車の店。

はい、それは通常のrdbmsのインデックス機能を複製しています。

これは、FriendFeedチームがこの問題にどのようにアプローチし、その解決策に着手したか、そしてその理論的根拠についての良い記事です(RDBMSをキー/値ストアとして使用していたため、少し奇妙ですが、議論のポイントは音響理論):
http://bret.appspot.com/entry/how-friendfeed-uses- mysql

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top