2011-01-20 3 views
0

私は将来のソーシャルアプリケーションの権限にほとんど問題がありません。すべてのユーザーグループのキーを取得するためにIN演算子を使用したBigTableクエリ

プラットフォームはnonrel db(GoogleのBigTable)になります。

私のアプリケーションでは、各ユーザーにグループ(たとえば、友人、協力者、家族など)があります。グループにはFacebookのような友人がいます。そして、このグループのためだけにいくつかのコンテンツ(ニュース、短いテキスト、...)を公開することができます。 私のグループにいるユーザーは私の友人です。 Facebookのようだが、もっと多くのグループ。

私の考えは、Facebookのトップニュースのように、各ユーザーが1ページ内のすべての友人のすべての最後のコンテンツを見ることができるということです。 しかし、私は簡単なクエリを作成することに問題があります。例えば

SELECT * FROM News WHERE group_key IN [list_of_groups_where_i_am] 

これは良い動作しますが、そこにサブクエリがあると、リストの上限は30項目です。 他の方法は、コンテンツの強力なキャッシュです。

誰かに何か考えがありますか?または任意の学習教材、例...

答えて

1

このような要件では、読み取りまたは書き込みのいずれかで最適化できますが、通常は両方ではありません。あなたは書き込み最適化バージョンを持っています - 右のグループキーでレコードを書きますが、すべてのグループのコンテンツを取得する複雑なクエリがあります。

読み込み最適化バージョンは、各ユーザーのフィードにコンテンツ(またはそのid)だけを書き込むことになるため、読み込みクエリが非常にシンプルになります。

関連する問題