关于Cassandra where子句的一些问题

时间:2016-12-14 21:06:20

标签: cassandra cql cql3

我正在阅读A deep look at the CQL WHERE clause。我对几个陈述感到困惑,所以我发了5个问题(Q1-Q5)。欢迎任何评论。 感谢

  

Q1:Secondary index queries是什么意思? the query is using a secondary index是什么意思?

     

我认为secondary index queries == the query which is using a secondary index

     

Secondary index queries表示对存在二级索引的表进行查询   或者查询的列都被索引或者至少有一列   所有查询的列都被编入索引?

仅在受限制的最后一个群集列上允许单列切片限制。

  

Q2:单列切片限制意味着>, >=, <=, <

对二级索引的直接查询仅支持=,CONTAINS或CONTAINS KEY限制。

  

问题3:索引列只能由=,CONTAINS和   包含关键?

CONTAINS和CONTAINS当查询使用二级索引时,KEY限制只能用于集合。

  

问题4:CONTAINS可用于任何非索引的群集列吗?购买   当一列被二次索引时,CONTAINS只能用于   此列为collections时是否为此列?

如果查询是辅助索引查询,则可以通过=,&gt;,&gt; =,&lt; =和&lt;,CONTAINS或CONTAINS KEY限制来限制常规列。 不支持IN限制。

  

问题5:Regular columns是什么意思?始终Single column slice restrictions are allowed only on the last clustering column being restricted.。如果一个列是二级索引,则可以限制=, >, >=, <= and <, CONTAINS or CONTAINS KEY restrictions (but not IN)   在此列上,即使它不是最后一个聚类列?

1 个答案:

答案 0 :(得分:0)

Q1:二级索引就是他们使用&#39; CREATE INDEX&#39;的所有例子。

Q2:是的,所有这些不等式运算符都会产生一个查询片段。

问题3:是的,基本上CONTAINS会查看集合内部并查找该特定项目。它仅在列具有辅助索引时才有效,否则Cassandra必须扫描每个集合以进行检查。

Q4 / 5:问题有点令人困惑。此上下文中的常规列将是非分区键列。