聚类键的 Cassandra 范围查询
Cassandra range query on clustering key
假设我有这个 table:Table1(PartKey, Cluster_Time DESC)
和以下元组:
(p1 , 6.0)
(p1 , 5.3)
(p1 , 4.1)
(p1 , 3.3)
(p1 , 2.3)
(p1 , 1.2)
(p1 , 0.1)
现在假设我进行以下查询:
SELECT *
FROM Table1
WHERE PartKey = "p1" AND Cluster_Time >= 2.0 AND Cluter_time <=4.0;
我想了解的是以下内容。
卡桑德拉:
1) 从头开始扫描分区p1,到达元组(p1,2)后停止
或
2) 它具有在大约 4.1 时间直接开始扫描的机制?
如果没有这样的机制,索引是否适合这个范围查询?
感谢任何提示!
假设您的密钥是 PRIMARY KEY (PartKey, Cluster_Time)
。提供您的实际架构会有所帮助。
磁盘上的分区 p1
将按集群顺序包含它的所有行。读取将使用 sstable 的索引组件,它每 64kb(默认)聚类键有一个标记,以尽可能接近 Cluster_Time = 2.0
,跳过行直到到达它然后继续读取并返回行直到Cluster_Time <= 4.0
假设我有这个 table:Table1(PartKey, Cluster_Time DESC)
和以下元组:
(p1 , 6.0)
(p1 , 5.3)
(p1 , 4.1)
(p1 , 3.3)
(p1 , 2.3)
(p1 , 1.2)
(p1 , 0.1)
现在假设我进行以下查询:
SELECT *
FROM Table1
WHERE PartKey = "p1" AND Cluster_Time >= 2.0 AND Cluter_time <=4.0;
我想了解的是以下内容。
卡桑德拉:
1) 从头开始扫描分区p1,到达元组(p1,2)后停止
或
2) 它具有在大约 4.1 时间直接开始扫描的机制?
如果没有这样的机制,索引是否适合这个范围查询?
感谢任何提示!
假设您的密钥是 PRIMARY KEY (PartKey, Cluster_Time)
。提供您的实际架构会有所帮助。
磁盘上的分区 p1
将按集群顺序包含它的所有行。读取将使用 sstable 的索引组件,它每 64kb(默认)聚类键有一个标记,以尽可能接近 Cluster_Time = 2.0
,跳过行直到到达它然后继续读取并返回行直到Cluster_Time <= 4.0