1

让我们考虑下表

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 新存储引擎可能已经考虑到优化此类请求......如果有人对此有想法:)

谢谢 !

4

1 回答 1

3

因为您正在从同一个分区读取,所以在关系中有很多元素之前应该不会对性能产生很大影响IN......但是如果您通过比较选择太多条目<可能会出现问题(这可能是问题与单=以及)。

于 2018-03-16T16:44:52.903 回答