位置: 编程技术 - 正文

MySQL分页分析原理及提高效率(mysql分页性能)

编辑:rootadmin

推荐整理分享MySQL分页分析原理及提高效率(mysql分页性能),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql分页实现原理,mysql分页问题,mysql分页查询原理,mysql分页问题,mysql分页查询原理,mysql 分页原理,mysql分页实现原理,mysql 分页原理,内容如对您有帮助,希望把文章链接给更多的朋友!

MySQL分页分析原理及提高效率

PERCONA PERFORMANCE CONFERENCE 上,来自雅虎的几位工程师带来了一篇”Efficient Pagination Using MySQL“的报告,有很多亮点,本文是在原文基础上的进一步延伸。

首先看一下分页的基本原理:

limit ,的意思扫描满足条件的行,扔掉前面的行,返回最后的行,问题就在这里,如果是limit ,,需要扫描行,在一个高并发的应用里,每次查询需要扫描超过W行,性能肯定大打折扣。文中还提到limit n性能是没问题的,因为只扫描n行。

文中提到一种”clue”的做法,给翻页提供一些”线索”,比如还是SELECT * FROM message ORDER BY id DESC,按id降序分页,每页条,当前是第页,当前页条目id最大的是,最小的是,如果我们只提供”上一页”、”下一页”这样的跳转(不提供到第N页的跳转),那么在处理”上一页”的时候SQL语句可以是:

处理”下一页”的时候SQL语句可以是:

MySQL分页分析原理及提高效率(mysql分页性能)

不管翻多少页,每次查询只扫描行。

缺点是只能提供”上一页”、”下一页”的链接形式,但是我们的产品经理非常喜欢”<上一页 1 2 3 4 5 6 7 8 9 下一页>”这样的链接方式,怎么办呢?

如果LIMIT m,n不可避免的话,要优化效率,只有尽可能的让m小一下,我们扩展前面的”clue”做法,还是SELECT * FROM message ORDER BY id DESC,按id降序分页,每页条,当前是第页,当前页条目id最大的是,最小的是,比如要跳到第8页,我看的SQL语句可以这样写:

跳转到第页:

原理还是一样,记录住当前页id的最大值和最小值,计算跳转页面和当前页相对偏移,由于页面相近,这个偏移量不会很大,这样的话m值相对较小,大大减少扫描的行数。其实传统的limit m,n,相对的偏移一直是第一页,这样的话越翻到后面,效率越差,而上面给出的方法就没有这样的问题。

注意SQL语句里面的ASC和DESC,如果是ASC取出来的结果,显示的时候记得倒置一下。

已在W数据总量的表中测试,效果非常明显。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

mysql允许所有host访问的方法 1.把mysql库中user表中的一条记录的Host字段值改为%,奇怪的是一定要用以下语句设置一下密码才行2.updateusersetPassword=PASSWORD("")WHEREHost="%";3.执行flushprivil

MySql在Mac上的安装与配置详解 一、下载安装官网下载社区版dmg安装文件:

mysql5.7.解压版启动mysql服务 mysql5.7.解压版启动mysql服务,具体内容如下1.下载mysql社区版2.解压到D:ProgramFiles3.在D:ProgramFilesmysql-5.7.-winxbin下,新建文件my.ini,内容如下:[client]po

标签: mysql分页性能

本文链接地址:https://www.jiuchutong.com/biancheng/349656.html 转载请保留说明!

上一篇:解决mysql创建数据库后出现:Access denied for user 'root'@'%' to database 'xxx'的问题(mysql创建数据库的操作步骤)

下一篇:mysql允许所有host访问的方法(mysql允许字段为空)

  • 房地产零税率
  • 小卖部的货源怎样提供的
  • 公司注销单位社保欠费怎么处理
  • 没有发票的费用可以抵扣企业所得税吗
  • 收到红字发票如何申报增值税?
  • 临时设施摊销方案怎么写
  • 公司没有业务了 可以办理停业
  • 手撕发票怎么领取需要什么证件
  • 住宿发票丢了能重开吗
  • 收到现金货款可以直接用吗
  • 按最低标准买社保30年退休后每个月领多少钱
  • 企业所得税退税的会计分录怎么做
  • 车辆增值税抵扣多少点
  • 小规模纳税人减免增值税会计处理
  • 红字记账的四种登记方式
  • 审计报告的二维码扫出来是什么
  • 个税零申报工资填0吗
  • 房地产企业预收房款开票
  • 代收污水处理费要交税吗
  • 收到财付通打款认证冲减财务费用怎么做分录
  • 收到老板的钱会计分录
  • 支付测量费的补贴费用怎么记账
  • 经营方式变更说明
  • 专用发票已认证怎么退回
  • 旅客购买电子客票
  • 收到别人押金的会计分录
  • win11系统语言修改不了
  • 租赁的车间改造的会计分录
  • window10玩吃鸡总崩溃
  • 偷税漏税如何处罚
  • win7怎么删除windows.old
  • 亨茨维尔机场
  • php实现文件上传需要使用哪个全局变量
  • php socketio
  • php与ajax交互
  • auto.js 逆向
  • thinkphp log
  • python stream模块
  • php 注入
  • 应交税金会计编码
  • 帝国cms真的很好用
  • scala实例
  • select
  • 政府补助会计处理方法
  • 销售自己使用过的物品免税吗
  • sqlserver避免死锁
  • 管理费用的会计要素
  • 公司股东分红要交税吗?
  • 分配现金股利如何做会计分录
  • 企业一次性伤残就业补助金是由保险赔付吗
  • 增值税进项发票如何做账
  • 企业资产负债表怎么做
  • 固定资产租赁费评估
  • 什么是成本费用,什么是经营成本
  • 会计凭证装订的注意事项
  • 没有什么费用
  • 什么情况下要暂扣驾驶证
  • 外贸整个流程图
  • 商品流通企业如何控成本
  • win7ie11如何降为ie8
  • centos启动按e没用
  • win7资源管理器停止工作怎么办
  • ini文件是什么意思
  • Win10桌面任务栏能不能删除
  • linux常用命令清除
  • perl ne
  • 一、Unity3D 5.0.1-示例项目“汽车游戏”的展示及开发准备
  • Node.js中的核心模块包括哪些内容?
  • js数字跳动增加效果
  • 究竟什么是幸福
  • list嵌套list采用什么结构
  • python3+PyQt5实现使用剪贴板做复制与粘帖示例
  • javascript简单代码
  • javascript获取当前文件夹文件数量
  • bootstrap日期控件背景为白
  • web 开发
  • js获取url参数值的两种方式
  • 增值税0申报操作流程
  • 企业填写莞e申报的通知
  • 辽宁地方税务局招聘
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设