2016-09-27 4 views
1

私はあなたの送受信したメッセージを見ることができる履歴ページを持つメッセンジャーアプリケーションを持っています。Dynamic Cassandraクエリ

メッセージの量が私のパフォーマンスを低下させたので、私はCassandraを使用することを考えていました。

Cassandraについてのトピックを調査した後、クエリを満たすためにテーブルを作成する必要があることが分かりました。

問題:履歴ページで、x個の異なるフィルタを同時に使用することができます。たとえば、日付、受信者、および送信者によるフィルタリング。

私がCassandraを使用する場合、これらのフィルタの組み合わせごとにテーブルを作成する必要がありますか? これは一般的なカサンドラの悪い使用例ですか? もしそうなら、代替手段はありますか?

答えて

0

なぜSELECT文を作成しないのですか。 CQL(Cassandra Query Language)を見てください。 CQLとSQLは同じ構文クエリを共有しますが、多くの違いがあります。 これらの違いの理由は、Cassandraが分散データを処理しており、非効率な照会を防ぐことを目的としているためです。

参照のためにthis linkを参照してください。それはあなたがすることができる、できない質問を表示します。

+0

記事によると、where句の属性はインデックスを持つか、または主キーの一部である必要があります。私のユースケースでは、テーブルのすべての属性がインデックスを持つか、PKの一部であることを意味します。または私は何かを誤解しましたか? – Joshu

+0

主キーは、パーティションキー列とクラスタリング列の組み合わせです。 行の効率的な回収にはクラスタリングが非常に重要です – TableCreek