类似 BigTable 的数据库存储按其键排序的行。
Cassandra 使用分区键和集群键的组合来保持数据的分布和排序;然而,您只能通过分区键来选择行!
Cassandra 的架构是如何以这种方式工作的?
例如,在 RocksDB 中解决此问题的一种方法是,您可以通过分区键拥有一个默认列族,而另一个具有分区和集群组合键的默认列族,并迭代排序的数据并按默认列族检索,最终会得到非常高的空间复杂度!
更新:我猜 Cassandra 试图将每一列存储在不同的键中,它从分区键开始并迭代不同的“列名”——也许是其他集群列的组合。参考底层存储引擎图片-。
SELECT * From authors WHERE name = 'Tom Clancy' AND year = '1993'。在一个表中,“name”是分区键,“year”和“title”是集群列。