条件付きの選択クエリを使用すると、Cassandra のパフォーマンスに少し問題があります。例:
SELECT name from Perso where age = 18
時間がかかりすぎて、テーブルが 1M 行に到達したときにtimedoutexception()
.
この場合、ページネーションを使用できますか? はいの場合、リクエストの条件でどのように使用しますか?
Cassandra は、データのカーディナリティ (つまり、行数) が低い場合は where 句で高速ですが、カーディナリティが高い場合は遅いことで有名です。
Cassandraのドキュメントでは、1 つの列ファミリーを使用してデータを格納し、1 つ以上の他の cfs を使用してそのデータのインデックスとして機能することを提案しています。
たとえば、問題の場合、2 つの列ファミリーを持つことができます。1 つは Person 用で、もう 1 つは年齢を名前のリストにマップするためのインデックス列ファミリーです。年齢をキーとしてこの 2 番目のテーブルをクエリすると、名前のリストが返されます。次に、返された個々の名前を使用して、Person 列ファミリーで必要なデータをクエリできます。