密钥排序和允许的查询

分区键最小符使用 where 子句进行查询所需。

如果声明复合群集键,则顺序很重要。

假设你有以下主键:

PRIMARY KEY((part_key1, part_key_2), (clust_key_1, clust_key_2, clust_key_3))

然后,唯一有效的查询使用 where 子句中的以下字段:

  • part_key_1part_key_2
  • part_key_1part_key_2clust_key_1
  • part_key_1part_key_2clust_key_1clust_key_2
  • part_key_1part_key_2clust_key_1clust_key_2clust_key_3

无效查询的示例如下:

  • part_key_1part_key_2clust_key_2
  • 任何不包含 part_key_1part_key_2 的东西

如果你想使用 clust_key_2,你还必须指定 clust_key_1,依此类推。

因此,声明群集密钥的顺序将对你可以执行的查询类型产生影响。相反,分区键字段的顺序并不重要,因为你始终必须在查询中指定所有这些字段。