我一直在网上阅读文章,以了解以下key
种类型之间的不同之处.但这对我来说似乎很难理解.举例肯定会有助于更好地理解.
primary key,
partition key,
composite key
clustering key
我一直在网上阅读文章,以了解以下key
种类型之间的不同之处.但这对我来说似乎很难理解.举例肯定会有助于更好地理解.
primary key,
partition key,
composite key
clustering key
围绕这一点的念力很多,我会尽量简单一点.
主键是一个通用概念,用于指示用于从表中检索数据的一个或多个列.
主键可以是100,甚至可以内联声明:
create table stackoverflow_simple (
key text PRIMARY KEY,
data text
);
这意味着它是由一根柱子制成的.
但是主键也可以是100(也就是101),从更多的列生成.
create table stackoverflow_composite (
key_part_one text,
key_part_two int,
data text,
PRIMARY KEY(key_part_one, key_part_two)
);
在主键为100的情况下,键的"第一部分"称为101(在本例中为分区键),键的第二部分为103(在本例中为key_part_two)
Please note that both partition and clustering key can be made by more columns,这是如何做到的:
create table stackoverflow_multiple (
k_part_one text,
k_part_two int,
k_clust_one text,
k_clust_two int,
k_clust_three uuid,
data text,
PRIMARY KEY((k_part_one, k_part_two), k_clust_one, k_clust_two, k_clust_three)
);
在这些名字背后...
更多用法信息:DATASTAX DOCUMENTATION
insert into stackoverflow_simple (key, data) VALUES ('han', 'solo');
select * from stackoverflow_simple where key='han';
table content个
key | data
----+------
han | solo
100可以检索"宽行"(即,即使您定义了聚集键,也可以只按分区键进行查询)
insert into stackoverflow_composite (key_part_one, key_part_two, data) VALUES ('ronaldo', 9, 'football player');
insert into stackoverflow_composite (key_part_one, key_part_two, data) VALUES ('ronaldo', 10, 'ex-football player');
select * from stackoverflow_composite where key_part_one = 'ronaldo';
table content个
key_part_one | key_part_two | data
--------------+--------------+--------------------
ronaldo | 9 | football player
ronaldo | 10 | ex-football player
但是您可以使用所有键(分区和集群)进行查询.
select * from stackoverflow_composite
where key_part_one = 'ronaldo' and key_part_two = 10;
query output个
key_part_one | key_part_two | data
--------------+--------------+--------------------
ronaldo | 10 | ex-football player
重要提示:分区键是使用where clause
执行查询所需的最小说明符.
例句:PRIMARY KEY((col1, col2), col10, col4))
您只能通过至少同时传递col1和col2来执行查询,这两列定义了分区键.进行查询的"一般"规则是,您必须至少传递所有分区键列,然后您可以 Select 按设置的顺序添加每个聚集键.
因此,有效查询为(excluding secondary indexes)
无效: