我有一些問題圍繞着CQL進行包裝。我一直試圖在CQL3中使用列切片(我認爲這是正確的術語),但所有關於它的文檔似乎都涉及到CQL2。組合鍵上的CQL2列切片和CQL3是否相等?
例如,我有如下表:現在
CREATE TABLE eventindex (
key uuid,
column1 int,
value uuid,
PRIMARY KEY (key, column1)
) WITH COMPACT STORAGE
,在CQL2我可以做到以下幾點:
select '1234567890'..'1234567895' from eventindex;
橫跨所有行返回範圍內的所有列
現在,在CQL3我不能這樣做(至少,不是在cqlsh),但我可以這樣做:
select value from eventindex WHERE column1 > 1234567890 AND column1 <= 1234567895 allow filtering;
這使我得到的信息基本相同,但格式略有不同。
問題是 - 這些是否相等?事實上,如果我不添加允許篩選,cqlsh會提醒我有關性能問題的事實告訴我,CQL2版本更高效,並且我的CQL3查詢的運行方式不同,但我確實無法找到確認的直接答案我的直覺在這裏。
編輯:,這讓我有關的具體事情是運行CQL2查詢沒有提出投訴cqlsh,但在運行CQL3查詢沒有「允許過濾」,使cqlsh拒絕執行查詢由於擔心憂慮不可預知的表現。
呀,實際上,我的鑰匙會像一整天,每一列,這一天中的時間標記,所以在幾乎所有情況下,我會使用關鍵也是如此。至於「allow filtering」命令,如果我想運行該查詢,cqlsh會告訴我使用它,因爲沒有它,它會拒絕運行,因爲查詢性能不可預知。正是那個讓我停下來的警告。 – darkliquid 2013-03-11 09:08:23
看看那篇文章,它看起來很可能是相同的。感謝你的回答。 – darkliquid 2013-03-11 09:21:43