Производительность Cassandra с использованием предложения IN для ключей кластеризации

Давайте рассмотрим следующую таблицу

CREATE TABLE base_table(
    partition_key uuid,
    clustering_key1 uuid,
    clustering_key2 uuid,
    regular text,
    PRIMARY KEY((partition_key), clustering_key1, clustering_key2)
);

До Cassandra 2.2 не было возможности делать такие запросы:

SELECT * FROM base_table 
WHERE partition_key=<UUID1> 
AND clustering_key1 IN (<UUID2>,<UUID3>) 
AND clustering_key2 < UUID4

Действительно, ключ кластеризации может быть ограничен, только если предыдущий был ограничен равным отношением.

Начиная с Cassandra 2.2 это возможно, но кто-нибудь знает, есть ли какие-то предостережения, делающие это? Какую производительность можно ожидать, как если бы не было предложения IN (или близко к нему)? Это масштабируется как равное отношение?

Более того, новый движок Cassandra 3.X, возможно, принял во внимание оптимизацию таких запросов... если у кого-то есть идеи по этому поводу:)

Спасибо!

1 ответ

Поскольку вы читаете из одного и того же раздела, не должно быть очень большого влияния на производительность, пока у вас не будет много элементов в IN отношение... Но могут возникнуть проблемы, если вы выберете слишком много записей < сравнение (это может быть проблема с одним = также).

Другие вопросы по тегам