我不完全理解Cassandra的一个主要部分:它的范围查询。我知道Cassandra强调分布式环境并专注于性能,但可能因为这个原因,它目前只支持几种能够高效完成的范围查询类型,我想了解的是:Cassandra支持哪些类型的范围查询。
据我所知,Cassandra支持以下范围查询:
1:使用关键字TOKEN
对主键进行范围查询,例如:
CREATE TABLE only_int (int_key int PRIMARY KEY);
...
select * from only_int where token(int_key) > 500;
2:在带有关键字ALLOW FILTERING
的二级索引上进行一个等式条件的范围查询,例如:
CREATE TABLE example (
int_key int PRIMARY KEY,
int_non_key int,
str_2nd_idx ascii
);
CREATE INDEX so_example_str_2nd_idx ON example (str_2nd_idx);
...
select * from example where str_2nd_idx = 'hello' and int_non_key < 5 allow filtering;
但我想知道是否有什么遗漏,并寻求一份详细的答案,列出当前CQL支持的所有类型的范围查询(或者一些解决方法,允许更多类型的范围查询)。