位置: 编程技术 - 正文

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允许字段为空)

  • 小规模纳税人代收水电费税率
  • 公司内部个人股份怎么算
  • 材料按实际成本计价时发出成本的计算方法有
  • 出口报关单运费小于实际运费
  • 加计扣除要交所得税嘛
  • 所有者权益股东权益
  • 费用挂账的会计分录怎么做
  • 索赔怎么开票
  • 从国外购进样品要交税吗
  • 企业注销递延所得税资产怎么处理
  • 已开票未收款算收入吗
  • 免征增值税还要做销项税吗
  • 公司用窗帘用什么颜色
  • 建筑业分包抵扣
  • 合并后的新企业有哪些
  • 一台设备发票开来0.5台怎么做账?
  • 机关党建经费提取比例
  • 地方教育附加怎么算的?
  • windows10命令提示符怎么用
  • linux dns配置服务器
  • 苹果15promax参数
  • 资产负债表日后至财务报告批准报出日之间
  • 什么情况下出租人可以解除合同
  • 其他业务收入不影响营业利润
  • win10电脑声道怎么设置
  • 退多收款怎么做分录
  • 跨年冲减无发票怎么入账
  • 补缴增值税和滞纳税区别
  • PHP:Memcached::deleteByKey()的用法_Memcached类
  • PHP:pg_lo_truncate()的用法_PostgreSQL函数
  • 京东最贵的商品排行
  • wordpress采集教程
  • php动态页面实例
  • 非货币性资产交换
  • 蓝桥杯等级
  • 存货按实际成本计价是指每种存货的收发结存
  • laravel 日志配置
  • 布列塔尼岛屿
  • 企业无偿借款的税务处理
  • ros urdf
  • wnba艾琳娜多恩
  • 微信小程序登录后端
  • grid-column
  • 前端框架源码
  • 经营租入固定资产
  • 前端大佬都有谁
  • 一般贸易和进料加工退税的区别
  • 退回的货款应该记什么费用
  • 补税分录
  • 非独立核算的分公司如何报税
  • 借条这样写才有效
  • sql server 2008 r2数据库备份
  • 企业跨区变更地址迁入地核验码怎么查询
  • 劳务派遣公司经营情况说明怎么写
  • 现金流量表利息支出
  • 典当业销售的死当物品是什么意思
  • 地下车库的成本包括哪些
  • 报销金额比发票金额少可以吗
  • 发行价格另支付发行费用
  • 销售款退回会计分录
  • 按照现行会计制度的规定,下列票据中
  • 资产负债表和科目余额表怎么核对
  • 发货就要开票吗
  • 企业注销未分配是从注册开始吗
  • win7隐藏账户
  • win10 右下角
  • 获取windows的最新信息
  • vb win7
  • bat命令详解
  • perfcurve函数
  • java怎样学
  • JavaScript中常用的数据类型有
  • nodejs客户端程序开发
  • node.js app
  • javascript的含义和作用
  • ajax与java使用实例
  • 江苏国家电子税务局官网登录
  • 增值税归国家还是地方
  • 税务意识形态工作主要内容有哪些
  • 小规模纳税人租赁费税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设