performance - 在集群键上使用 IN 子句的 Cassandra 性能

标签 performance cassandra cql clustering-key

让我们考虑下表

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

谢谢!

最佳答案

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

关于performance - 在集群键上使用 IN 子句的 Cassandra 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49319172/

相关文章:

linux - Cassandra 不会在 Linux 中作为服务启动

cassandra - 如何使 Cassandra 对特定行键具有不同的列键?

java - 我可以使以下代码更快吗

c# - 读取内存中的整个文件 VS 读取 block

c# - 锁定 .NET 与 Java 的成本

performance - 计算百分比的更快方法?

Cassandra-Stress 因错误而停止

cassandra - 性能 - TTL 与在 Cassandra 中删除一行

cassandra - 了解 Cassandra - 它可以取代 RDBMS 吗?

cassandra - 将空值插入cassandra