千万级数据量怎么做分页查询

随着数据量的增长,分页数量自然也越来越多,可以通过子查询的方式提升分页效率。在基本查询的基础上,先通过一个子查询检索出该页的起始主键ID,然后作为主查询WHERE语句条件进行再次检索。

SELECT * FROM table WHERE id > (SELECT id FROM table LIMIT offset, 1) LIMIT size;

JOIN分页

使用JOIN语句进行关联查询,同样可以达到分页的效果,而且当数据量过多时,比基本分页效率更高。

SELECT * FROM table AS t1 JOIN (SELECT id FROM table LIMIT offset, 1) AS t2 WHERE t1.id >= t2.id LIMIT size;

原因

  • 子查询和JOIN关联查询类似,都是优先走一次子查询,实测耗时情况也差不多;
  • 子查询通常是在索引上完成,而普通分页查询是在数据文件上完成,索引文件通常要比数据文件小得多,所以操作起来更快;

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值