Cassandra 与 RDBMS:聚类列

Cassandra vs RDBMS: Clustering columns

Cassandra 主键由分区键和集群列组成。分区键告诉数据在哪个节点,集群键决定磁盘上的顺序。如果我们没有以正确的顺序提供集群列,许多读取查询或 ORDER BY 子句将不起作用。

分区键的作用很明确。没有它,所有节点都会被查看,从而影响性能。但是一旦我们使用分区键确定了节点,问题就简化为像在传统 RDBMS 中一样查找记录,不是吗?那么,为什么 Cassandra 数据模型通过添加聚类列的概念让它变得有点不同,如果我敢说很难的话。排序等可以用与 RDBMS 相同的方式完成,不是吗?

Cassandra 这样做是为了提高性能。您的分区可能会变大,并且为了避免在分区内进行扫描,Cassandra 按集群键排序的顺序存储数据。您可以参考 this link 以了解集群列的存储方式。

还有一件事,除了告诉数据将出现在哪个节点上,分区键在确定数据不能出现的 sstables 中也很有用。