密钥排序和允许的查询
分区键是最小符使用 where 子句进行查询所需。
如果声明复合群集键,则顺序很重要。
假设你有以下主键:
PRIMARY KEY((part_key1, part_key_2), (clust_key_1, clust_key_2, clust_key_3))
然后,唯一有效的查询使用 where
子句中的以下字段:
part_key_1
,part_key_2
part_key_1
,part_key_2
,clust_key_1
part_key_1
,part_key_2
,clust_key_1
,clust_key_2
part_key_1
,part_key_2
,clust_key_1
,clust_key_2
,clust_key_3
无效查询的示例如下:
part_key_1
,part_key_2
,clust_key_2
- 任何不包含
part_key_1
,part_key_2
的东西 - …
如果你想使用 clust_key_2
,你还必须指定 clust_key_1
,依此类推。
因此,声明群集密钥的顺序将对你可以执行的查询类型产生影响。相反,分区键字段的顺序并不重要,因为你始终必须在查询中指定所有这些字段。