cassandra2.0 如何实现分页查询

转自:http://zhaoyanblog.com/archives/164.html

本文用到的cassandra的版本是2.0.6版

1、前提和约束

1
2
CREATE TABLE test(a INT,b INT,c INT, d string,e string,PRIMARY KEY(a,b,c));
CREATE INDEX ON test(d);

cassandra的查询具有以下约束:
第一主键 只能用=号查询
第二主键 支持= > < >= <= 但是必须后面加 ALLOW FILTERING
索引列 只支持=号

2、分页查询
首先使用limit 关键字来限制查询结果的条数 进行分页。
进行翻页是个比较复杂的过程。
需要明确查询出来的结果是按token(a) 来排序的,其次是按(b,c)来排序的。

假设无任何查询条件的查询,第一次查询语句是

1
SELECT * FROM test LIMIT 10;

出来的第10条记录的主键需要记录下来,假设为
a10 b10 c10

那么进行第二次查询的时候,语句应该这样写:

1
SELECT * FROM test WHERE  token(a)=token(a10) AND (b,c)>(b10,c10) LIMIT 10;

假设查出来只有6条,
那么需要继续查出来4条,语句应该这样写:

1
select * from test where token(a)>token(a10) limit 4;

如果后面扔有数据,第20条记录的主键也要记录下来,假设为
a20 b20 c20

假设要继续翻页,重复第二次查询的过程即可。

3、总结
cassandra 的分页查询,主要是通过查询结果的默认的排列顺序来实现的,本文的例子是没有查询条件的情况,
有查询条件的情况,也是一样的。你只要知道了cassandra的默认查询结果的排序规则,就知道如何具体的分页查询了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值