1

次の表があります(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 通りのマージですが、制限はかなり低いです。

どこを見るべきかについてのヒント、アドバイス、またはコードへのポインタをいただければ幸いです。

4

1 に答える 1