【发布时间】:2015-08-08 12:39:05
【问题描述】:
假设,我有一个应用程序,它从 cassandra 读取数据,并以每页 10 或 20 行的行块向用户显示它们。有没有办法在 cassandra 中有效地做到这一点?假设,我有一个表 'ks1.cf1',分区键为 'pk',聚类列为 'ck',每个分区有 1000 多行,我想一次向用户显示每个分区 10 行。一种方法是运行
SELECT * FROM ks1.cf1 LIMIT 10;
并获取最后一行并根据聚类列('ck'的值)进行不等式并再次限制结果,如
SELECT * FROM ks1.cf1 WHERE ck > value_in_last_row LIMIT 10;
这是一种有效的方法,还是多次运行同一个查询会产生大量开销?结果分页在 cqlsh 中是如何工作的,cql 或 java 驱动程序是否支持类似的东西?此外,使用 LIMIT 是否会获取整个分区并仅显示请求的记录数? 另外,如果我要获取多个分区并希望一次显示 n 个分区,我该如何对一般查询执行相同的操作?
【问题讨论】:
标签: pagination cassandra cql cql3