以前一直用的limit来分页,现在发现array_slice分页挺好用的,就是不知道效率会不会太低

sql:select * from 表 limit m offset n.

这是正常的翻页的业务需求.

在一张count为200w的表上执行一下sql:

select * from 表 limit 1000000,5

执行时间:25s

问题:

MySQL里对LIMIT OFFSET的处理方式是,取出OFFSET+LIMIT的所有数据,然后去掉OFFSET,返回底部的LIMIT。

这种方式在offset很高的情况下,如:limit 100000,20,这样系统会查询100020条,然后把前面的100000条都扔掉,这是开销很大的操作,导致慢查询很慢.

如何优化:

用id>m limit n 取代,比用 limit m,n 快很多,原因在于与利用上了主键索引, 只查询了n条记录. 这种方法很适合数据加载,但是不一定适合前台的翻页场景,

因为ID可能不连续, 在电梯模式的翻页中不适用,只是用扶梯模式的翻页。

select * from 表 where id > 1000000 limit 5

执行一下:0.013s

还有一个简单的优化办法是使用覆盖查询(covering index)查询,然后再跟全行的做join操作。这样可以直接使用index得到数据,而不去查询表,当找到需要的数据之后,在与全表join,获得其他的列。

如:

select * from 表 inner join (select id from 表 limit 1000000,5) as lim on 表.id = lim.id

执行时间:0.211s

array_slice 分页?你确定要全部查出来在服务器分页,而不是在数据库中查询某一页的数据

php的limit分页,用php数组的array_slice分页和用limit查询分页哪个效率更高?相关推荐

  1. mysql UNION ALL查询分页

    1.UNION ALL和UNION 的区别 UNION ALL理论上要比UNION的查询效率更高一些,因为UNION会将结果集中的数据进行过滤,将相同的数据进行剔除后返回,而UNION ALL不进行此 ...

  2. springDataJpa入门教程(5)-单表动态条件查询+分页

    springDataJpa入门教程 springDataJpa入门教程(1)-基于springBoot的基本增删改查 springDataJpa入门教程(2)-Specification动态条件查询+ ...

  3. java混合分页_坑,MySQL中 order by 与 limit 混用,分页会出现问题!

    在Mysql中我们常常用order by来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似的写法select * from 表名 order by 排序字段 limt M,N. ...

  4. WEB阶段7:综合练习-联系人管理系统-增删改查查询分页

    综合练习-联系人管理系统-增删改查&查询分页 回顾 能够说出过滤器的作用 解决全局乱码问题 用户权限访问控制 用户输入文本内容进行过滤 能够编写过滤器 创建一个类实现javax.servlet ...

  5. mysql的分页怎么不对_mysql一对多关联查询分页错误问题的解决方法

    xml问价中查询数据中包含list,需要使用collection .... .... 这样的查询系统封装的通用分页查询是不对的,所以需要自己sql中加入分页解决 SELECT you.nick_nam ...

  6. Java条件查询分页——总结

    问题 在工作中经常会遇到分页查询,我们都知道其实分页查询也很简单,思想都是类似的,不过你见过的分页方法有哪些呢? 详解 一.Easyui的分页查询 1.工具类: Page.java: public c ...

  7. db2分页sql_停止尝试使用内部DB框架模拟SQL OFFSET分页!

    db2分页sql 我敢肯定,到目前为止,您已经以多种方式弄错了. 而且您可能很快将无法正确处理. 那么,当您可以实施业务逻辑时,为什么还要在SQL调整上浪费您的宝贵时间呢? 让我解释- 直到最近的SQ ...

  8. mongodb查询分页优化

    mongodb查询分页优化 转自:https://blog.csdn.net/chunqiuwei/article/details/11669885 项目中需要用mongodb来进行数据测存储和查询, ...

  9. mysql一对多关联查询分页_mysql一对多关联查询分页错误问题的解决方法

    xml问价中查询数据中包含list,需要使用collection .... .... 这样的查询系统封装的通用分页查询是不对的,所以需要自己sql中加入分页解决 SELECT you.nick_nam ...

最新文章

  1. centos7 nat模式配置静态ip_Linux不进入网卡配置文件更改静态ip
  2. 浅谈:MyBatis-Plus的CRUD与乐观锁,分页插件,逻辑删除
  3. 使用CSS属性处理前端开发中长文本造成的内容显示重叠问题
  4. Android 第十三课 SharedPreferences存储
  5. 各大网站猪年新春应景LOGO秀
  6. 1022 D进制的A+B (20 分)—PAT (Basic Level) Practice (中文)
  7. 自媒体免费素材,国旗高清无水印素材,PNG格式,直接引用即可
  8. Keil 5安装教程,搭建单片机环境
  9. Ruff自主研发的NB-IoT智能网关获得联通实验室测试通过
  10. android 拼音过滤、匹配首字母
  11. 传统蓝牙base on pincode配对以及安全简单配对(Secure Simple Pairing)流程介绍
  12. 数字人民币来了!它与支付宝、微信有什么区别吗?
  13. 漫画英语作文怎么写 计算机,漫画类的英语作文怎么写
  14. 【SpringBoot注解-4】:@Target、@Retention、@Documented注解简介
  15. linux虚拟机重启后,telnet不通端口的排查思路
  16. VO、AO、执行环境和作用域链
  17. 详解最小生成树代码C++
  18. 线面积分应该没那么难吧···
  19. MutationObserver api
  20. Cadence Allegro 如何隐藏和显示铜皮

热门文章

  1. Databricks文档03----Azure Databricks 创建
  2. 告别30元!喜茶承诺今年绝不涨价:不再推29元以上产品
  3. 一代神机落幕!苹果把iPhone 6 Plus列为过时产品,网友吵翻了...
  4. 晨光文具卖出去的笔能绕地球几圈?
  5. 为什么所有的APP都在炫富?
  6. 小霸王消失,好记星落灰,谁能“取悦”10后?
  7. 谷歌承诺未来三年将支付10亿美元新闻费用
  8. 小米公司宣布启动网络恶意营销账号专项整治行动
  9. 卢伟冰曝Redmi K30 Pro搭载骁龙865,却惨遭交罚款
  10. 贾跃亭向全体债权人道歉!个人资产曝光:总额14亿美元,国内三套房