我有一个 cassandra 表结构如下
create table demo (user_id text , comment_id text , timestamp timeuuid , PRIMARY KEY (user_id , comment_id , timestamp))
现在在 UI 中我想要分页,这样在单击下一个按钮时,我应该获得从 10 到 20,然后是 20 到 30 的值,依此类推。
我知道我们无法在 cassandra 中发起查询
select * from demo limit 10,20
因此,如果我创建一个查询为
select * from demo where timestamp = 'sometimestampvalue' limit 10;
这将给出从“sometimestampvalue
”到下一个 10 个值的 10 个值。
然后将最后一行时间戳值存储在变量中(例如 X),然后启动下一个查询
select * from demo where timestamp = 'X' limit 10;
等等,这行得通吗?或者可以做更好的事情,因为我准备更改表的结构,并添加计数器列,因为基本上我应该能够基于任何列进行分页。
最佳答案
看这个答案: Cassandra Limit 10,20 clause
基本上,您必须在应用程序代码中处理它。您的建议看起来会起作用,只需稍加调整。
关于Cassandra 时间戳限制子句(timeuuid),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38437358/