2016-04-13 13 views
2

クエリクエリとプロジェクションクエリの違いについてはちょっと混乱しています(これは7月7日に施行される新しい価格に関するものです)。私は著者によってすべてのポストを照会したい場合は、私はNの記事を検索しますクエリを投影クエリに変換してコストを節約する

**POSTS:** 
post_id -index 
author -index 
post_message -index 
created -index 

、N著者が書いた記事の数である:私はこのような種類を持っていると言います。だから彼が100の投稿を書いたら、私はこの質問に対して100回の読書リクエストを食べるでしょう。ダミーのプロパティを作成して、クエリを投影クエリに変えることはできますか?だから、私はdummyという名前のプロパティを追加して、クエリを実行しますが、id、post_messageだけを選択して作成します(作成者は私が既にフィルタリングしているかどうかを知っています)。この方法では、これらのすべてのエンティティを取得するには1回の読み込みで済むだけです。これは可能ですか?クエリコストを避けるために誰もがこれをしないのはなぜですか?

答えて

2

プロジェクションはエンティティ自体ではなくインデックスから値を返しますので、some limitationsがあります。

例では、(post_id, post_message, created)にインデックスを作成する必要がありますが、TextBlobなどのプロパティを取得する場合は、そのプロパティをインデックスできないため、エンティティを取得する必要があります。

また、プロジェクトを追加するプロパティやプロパティを変更すると、新しいインデックスを作成する必要があります。だから、あなたがエンティティの読書に救うかもしれませんが、あなたはあまりにも犠牲を払っています。

+0

インデックスの作成は無料ですが、新しい価格設定は7月1日から開始されます(ストレージは高価になります)。だから私はそれを見るだけで、余分なコストはインデックスのストレージです(私は長いテキストやブロブが必要ないでしょう)??私は、私が提案していることができるかどうかを知ることをより心配していますか? – user2924127

+0

これは実際に重要なポイントです。データとアプリケーションによっては、コンポジット・インデックスのストレージ・コストが高くなることで、多くの節約額が相殺されることがあります。 – tx802

関連する問題