我正在阅读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)
在此列上,即使它不是最后一个聚类列?
答案 0 :(得分:0)
Q1:二级索引就是他们使用&#39; CREATE INDEX&#39;的所有例子。
Q2:是的,所有这些不等式运算符都会产生一个查询片段。
问题3:是的,基本上CONTAINS会查看集合内部并查找该特定项目。它仅在列具有辅助索引时才有效,否则Cassandra必须扫描每个集合以进行检查。
Q4 / 5:问题有点令人困惑。此上下文中的常规列将是非分区键列。