php的limit分页,用php数组的array_slice分页和用limit查询分页哪个效率更高?
以前一直用的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查询分页哪个效率更高?相关推荐
- mysql UNION ALL查询分页
1.UNION ALL和UNION 的区别 UNION ALL理论上要比UNION的查询效率更高一些,因为UNION会将结果集中的数据进行过滤,将相同的数据进行剔除后返回,而UNION ALL不进行此 ...
- springDataJpa入门教程(5)-单表动态条件查询+分页
springDataJpa入门教程 springDataJpa入门教程(1)-基于springBoot的基本增删改查 springDataJpa入门教程(2)-Specification动态条件查询+ ...
- java混合分页_坑,MySQL中 order by 与 limit 混用,分页会出现问题!
在Mysql中我们常常用order by来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似的写法select * from 表名 order by 排序字段 limt M,N. ...
- WEB阶段7:综合练习-联系人管理系统-增删改查查询分页
综合练习-联系人管理系统-增删改查&查询分页 回顾 能够说出过滤器的作用 解决全局乱码问题 用户权限访问控制 用户输入文本内容进行过滤 能够编写过滤器 创建一个类实现javax.servlet ...
- mysql的分页怎么不对_mysql一对多关联查询分页错误问题的解决方法
xml问价中查询数据中包含list,需要使用collection .... .... 这样的查询系统封装的通用分页查询是不对的,所以需要自己sql中加入分页解决 SELECT you.nick_nam ...
- Java条件查询分页——总结
问题 在工作中经常会遇到分页查询,我们都知道其实分页查询也很简单,思想都是类似的,不过你见过的分页方法有哪些呢? 详解 一.Easyui的分页查询 1.工具类: Page.java: public c ...
- db2分页sql_停止尝试使用内部DB框架模拟SQL OFFSET分页!
db2分页sql 我敢肯定,到目前为止,您已经以多种方式弄错了. 而且您可能很快将无法正确处理. 那么,当您可以实施业务逻辑时,为什么还要在SQL调整上浪费您的宝贵时间呢? 让我解释- 直到最近的SQ ...
- mongodb查询分页优化
mongodb查询分页优化 转自:https://blog.csdn.net/chunqiuwei/article/details/11669885 项目中需要用mongodb来进行数据测存储和查询, ...
- mysql一对多关联查询分页_mysql一对多关联查询分页错误问题的解决方法
xml问价中查询数据中包含list,需要使用collection .... .... 这样的查询系统封装的通用分页查询是不对的,所以需要自己sql中加入分页解决 SELECT you.nick_nam ...
最新文章
- centos7 nat模式配置静态ip_Linux不进入网卡配置文件更改静态ip
- 浅谈:MyBatis-Plus的CRUD与乐观锁,分页插件,逻辑删除
- 使用CSS属性处理前端开发中长文本造成的内容显示重叠问题
- Android 第十三课 SharedPreferences存储
- 各大网站猪年新春应景LOGO秀
- 1022 D进制的A+B (20 分)—PAT (Basic Level) Practice (中文)
- 自媒体免费素材,国旗高清无水印素材,PNG格式,直接引用即可
- Keil 5安装教程,搭建单片机环境
- Ruff自主研发的NB-IoT智能网关获得联通实验室测试通过
- android 拼音过滤、匹配首字母
- 传统蓝牙base on pincode配对以及安全简单配对(Secure Simple Pairing)流程介绍
- 数字人民币来了!它与支付宝、微信有什么区别吗?
- 漫画英语作文怎么写 计算机,漫画类的英语作文怎么写
- 【SpringBoot注解-4】:@Target、@Retention、@Documented注解简介
- linux虚拟机重启后,telnet不通端口的排查思路
- VO、AO、执行环境和作用域链
- 详解最小生成树代码C++
- 线面积分应该没那么难吧···
- MutationObserver api
- Cadence Allegro 如何隐藏和显示铜皮
热门文章
- Databricks文档03----Azure Databricks 创建
- 告别30元!喜茶承诺今年绝不涨价:不再推29元以上产品
- 一代神机落幕!苹果把iPhone 6 Plus列为过时产品,网友吵翻了...
- 晨光文具卖出去的笔能绕地球几圈?
- 为什么所有的APP都在炫富?
- 小霸王消失,好记星落灰,谁能“取悦”10后?
- 谷歌承诺未来三年将支付10亿美元新闻费用
- 小米公司宣布启动网络恶意营销账号专项整治行动
- 卢伟冰曝Redmi K30 Pro搭载骁龙865,却惨遭交罚款
- 贾跃亭向全体债权人道歉!个人资产曝光:总额14亿美元,国内三套房