次の表があります(CQL3を使用):
create table test (
shard text,
tuuid timeuuid,
some_data text,
status text,
primary key (shard, tuuid, some_data, status)
);
tuuid で並べ替えられた行を取得したいと思います。しかし、これはシャードを制限した場合にのみ可能です。これはパフォーマンスによるものだと思います。
私は純粋にシャーディングのためにシャードを持っており、その値の範囲をいくつかの小さな範囲 [0-16) に制限する可能性があります。次に、次のようなクエリを実行できます。
select * from test where shard in (0,...,15) order by tuuid limit L;
テーブルには何百万行もある可能性があるため、このような order by クエリのパフォーマンス特性を理解したいと考えています。一般に、パフォーマンスはかなり悪いように見えますが、合理的な数 (10K のオーダー) の limit 節がある場合、これはそれほど悪くないかもしれません。つまり、16 通りのマージですが、制限はかなり低いです。
どこを見るべきかについてのヒント、アドバイス、またはコードへのポインタをいただければ幸いです。