1
我有這個表:卡桑德拉秩序和聚集鍵
CREATE TABLE custumer_events_service.events_by_websiteId_time(
"event_id" text,
"currentTime" timestamp,
"websiteId" varchar,
OTHER COLUMNS ...
PRIMARY KEY(event_id, websiteId, currentTime)
)
在這種情況下,我會得到通過currentime
有序當我執行此查詢10000行:
SELECT * FROM events_by_websiteid_time WHERE websiteid='xxxx' LIMIT 10000 ALLOW FILTERING;
還是我要在末尾添加WITH CLUSTERING ORDER BY (currentTime DESC);
?
+1感謝您的回答Aron(再一次;-)),第一個解決方案(使用CLUSTERING ORDER)有什麼缺點?在第二種解決方案中,我不會冒我的羣集失衡的風險,因爲我通過websiteId有一個非等價的事件分佈。 – farhawa
@farhawa第一個解決方案的缺點是涉及將數據複製到新的查詢表中。但是,如果您需要爲'websiteid'和'event_id'鍵入查詢,那麼您可能需要兩個表......交易磁盤以提高性能。至於第二種解決方案中的不平衡性,如果它有很大的差異,那麼添加額外的「存儲桶」來幫助分割數據(如日或月)或其他適合您的用例的其他內容是有意義的。 – Aaron
當我學習cassandra時,我發佈了一個新問題http://stackoverflow.com/questions/35880249/cassandra-the-same-query-work-with-cql-but-not-with-python-driver can you看一看?提前致謝 – farhawa