1

カサンドラで複数行選択を使用するのは悪いとどこかで聞いたことがあります。行選択ごとに新しいクエリが実行されるためです。たとえば、一度に 1000 行をフェッチしたい場合は、一度に 1000 個の個別のクエリを実行するのと同じです。真実?

また、ページが読み込まれるたびに約 50 行を選択し続けるのがどれほど悪いかというと、たとえば 1 分間に 1000 ページ ビューがあるとしたら、cassandra の速度が大幅に低下するでしょうか?

PS私はPHPCassa自分のプロジェクトに使用しています

4

3 に答える 3

3

はい、1000 行のクエリを実行することは、1000 個のクエリを実行することと同じです (推奨される を使用する場合RandomPartitioner)。ただし、これについてはあまり心配する必要はありません。Cassandra では、キーによる行のクエリは非常に一般的で、非常に高速な操作です。

2 番目の質問については、事前に判断するのは困難です。ビルドしてテストします。Cassandra はメモリ内キャッシュを使用することに注意してください。同じ行をクエリすると、それらはキャッシュされます。

于 2012-12-29T19:16:29.350 に答える
1

1)私はCassandraコードベースを少しデバッグしました。私の観察によれば、同時に複数の行をクエリするために、cassandraはphpcassaでも継承されるmultiget()機能を提供しました。

2)Multigetは、バッチリクエストを処理するように最適化されており、ネットワークホップを節約します(1,000行の場合は1,000ラウンドトリップになるため、999ラウンドトリップの時間が確実に短縮されます)

3)phpcassaのmultiget()の詳細:php cassa multiget()

于 2012-12-31T13:23:56.850 に答える
1

私たちは Cassandra に Playorm を使用しており、すべての行をすばやくフェッチするためのサポートを提供する「findAll」パターンがあります。詳細については、 https://github.com/deanhiller/playorm/wiki/Support-for-retriving-many-entities-in-parallelをご覧 ください。

于 2012-12-31T08:17:18.337 に答える