在《 Cassandra》这本书的权威指南中,有人说分区键和集群键的组合保证了数据库中唯一的记录……我知道分区键是保证记录唯一的一个-节点所在记录已存储。聚类键用于记录的排序。有人可以帮我理解吗?感谢和抱歉的问题...
primary key
,必须是唯一的。partition key
+ clustering key
必须是唯一的,但这并不意味着分区键或群集键都必须是唯一的。在下面的示例中,userid
是分区键,date
是群集键。
cqlsh:play> CREATE TABLE example (userid int, date int, name text, PRIMARY KEY (userid, date));
cqlsh:play> INSERT INTO example (userid, date, name) VALUES (1, 20200530, 'a');
cqlsh:play> INSERT INTO example (userid, date, name) VALUES (1, 20200531, 'a');
cqlsh:play> INSERT INTO example (userid, date, name) VALUES (2, 20200531, 'a');
cqlsh:play> SELECT * FROM example;
userid | date | name
--------+----------+------
1 | 20200530 | a
1 | 20200531 | a
2 | 20200531 | a
(3 rows)
cqlsh:play> INSERT INTO example (userid, date, name) VALUES (2, 20200531, 'b');
cqlsh:play> SELECT * FROM example;
userid | date | name
--------+----------+------
1 | 20200530 | a
1 | 20200531 | a
2 | 20200531 | b
(3 rows)
cqlsh:play>