让我们考虑下表
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
关系中有很多元素之前你会产生非常大的性能影响...但是如果你通过<
比较选择了太多的条目可能会有问题(也可能是单个=
的问题) .