[英]Cassandra cql select sorting
如果我使用cql定義這樣的表:
CREATE TABLE scores (
name text,
age int,
score int,
date timestamp,
PRIMARY KEY (name, age, score)
);
並在cqlsh中執行SELECT,如下所示:
select * from mykeyspace.scores;
顯示的結果似乎始終按“年齡”排序,然后按照升序自動“得分”,而不管輸入數據排序如何(正如預期的那樣,返回行不按分區鍵'名稱'排序)。 我有以下問題:
SELECT
是否通過群集鍵自動對返回行進行排序? SELECT
時使用ORDER BY
子句的目的是什么? select *
上使用ORDER BY
? 您的群集列定義了順序(在您的情況下, age
然后score
)
http://cassandra.apache.org/doc/cql3/CQL.html#createTableStmt
在給定的物理節點上,給定分區鍵的行按聚類列引入的順序存儲,使得在該聚類順序中檢索行特別有效(請參閱SELECT)。
http://cassandra.apache.org/doc/cql3/CQL.html#selectStmt
ORDER BY選項允許選擇返回結果的順序。 它將列名列表與列的順序(上升的ASC和后代的DESC,省略等同於ASC的順序)作為參數。 目前可能的訂單是有限的(這取決於表CLUSTERING ORDER):
- 如果已經定義了表而沒有任何特定的CLUSTERING ORDER,那么允許的排序是由聚類列引起的順序,反之亦然。
- 否則,允許的排序是CLUSTERING ORDER選項和反轉順序的順序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.