当我创建CQL表,是否有必要准确的是列的排列顺序不是在primary_key和NOT聚类列:
CREATE TABLE user (
a ascii,
b ascii,
c ascii,
PRIMARY KEY (a)
);
Run Code Online (Sandbox Code Playgroud)
它等同于?
CREATE TABLE user (
a ascii,
c ascii, <-- switched
b ascii, <-- switched
PRIMARY KEY (a)
);
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助
这两个陈述都会失败,因为:
假设你有那些固定的,那么答案仍然是"是的,它们是相同的".
Cassandra在创建表时将自己的订单应用于您的列.考虑这个表,因为我输入了它:
CREATE TABLE testorder (
acolumn text,
jcolumn text,
dcolumn text,
bcolumn text,
apkey text,
bpkey text,
ackey text,
bckey text,
PRIMARY KEY ((bpkey,apkey),bckey,ackey));
Run Code Online (Sandbox Code Playgroud)
创建它之后,我将描述该表,以便您可以看到Cassandra已应用于列的顺序.
aploetz@cqlsh:stackoverflow> desc table testorder ;
CREATE TABLE stackoverflow.testorder (
bpkey text,
apkey text,
bckey text,
ackey text,
acolumn text,
bcolumn text,
dcolumn text,
jcolumn text,
PRIMARY KEY ((bpkey, apkey), bckey, ackey)
) WITH CLUSTERING ORDER BY (bckey ASC, ackey ASC)
Run Code Online (Sandbox Code Playgroud)
本质上,Cassandra将对分区键和聚类键(按PRIMARY KEY定义中的优先级排序)进行排序,然后列按升序排列.
| 归档时间: |
|
| 查看次数: |
1089 次 |
| 最近记录: |