我有下面的表中選擇最後N個評論:卡桑德拉CQL從每個用戶
CREATE TABLE user_comment (
username text,
time timestamp,
comment text,
PRIMARY KEY (username, time)
) WITH CLUSTERING ORDER BY (time DESC);
假設一個任務是獲取來自用戶的Alice
的最後10個評論,「鮑勃」和Charlie
,返回3 * N個記錄。查詢應該如何形成?
我現在正在做的是發出3查詢
SELECT * FROM user_comment WHERE username = 'Alice' limit 10;
SELECT * FROM user_comment WHERE username = 'Bob' limit 10;`
SELECT * FROM user_comment WHERE username = 'Charlie' limit 10;
和連接的結果。
但這看起來很愚蠢。有更有效的方法嗎?
我使用:
> show VERSION ;
[cqlsh 5.0.1 | Cassandra 2.1.8 | CQL spec 3.2.0 | Native protocol v3]
這實際上並不愚蠢......一次在一個分區鍵上運行查詢會更有效。 – jny