位置: 编程技术 - 正文

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

  • 报个税时显示扣缴单位无有效的税费种认定信息
  • 三方代付协议有效吗
  • 签合同前的费用由谁承担
  • 电信电话费计入成本吗
  • 境外企业所得税税率
  • 公司分红是按股权比例分配吗
  • 哪些补贴可以不交个税
  • 货发出款未收的会计分录怎么做?
  • 共同开发无形资产怎么算
  • 行政机关作出下列行为属于行政复议的范围
  • 企业去年
  • 园林绿化苗木增值税抵扣税率是多少?
  • 小规模纳税人出售不动产征收率
  • 增值税专票盖章盖在哪里
  • 利润率的计算举例
  • 7年利率多少
  • 商品和服务税收编码怎么查
  • 股份有限公司发行的股票溢价
  • 发票在验旧日期之后作废吗
  • 社保企业报盘是什么
  • 劳务费没发票怎样下账
  • 报销货物运输费需要什么凭证
  • 查看电脑开机时间记录win10
  • 收到人才引进补助会计分录
  • 发散思维的关键
  • js图片放大代码
  • 年度企业所得税汇算清缴会计分录怎么做
  • 整体租赁经营模式是什么
  • mouse.exe在哪个文件夹
  • php封装app
  • 马勒舞曲
  • Joomla使用Apache重写模式的方法
  • vue 图片转base64格式的方法
  • thinkphp模型作用
  • 有关事业单位无编人员的规定
  • 企业为其他企业担保有什么责任
  • 开票软件是什么名字
  • 资产负债表里长期股权投资是什么意思
  • 退税没有退的部分怎么做账
  • 固定资产清理是三栏式还是多栏式
  • 认缴注册资本是什么意思
  • 在与sqlserver建立连接时出现
  • 清算期间研发费怎么算
  • 租赁业发票
  • 车子以旧换新还能贷款吗
  • 出口退税进口退税吗
  • 专项应付款科目编码是多少
  • 私立学校增值税免税吗
  • 装修费用税法规定有哪些
  • 收到政府土地补偿款账务处理
  • 结转资金和结余资金
  • 支付宝里的收入和支出明细能查多久的?
  • 通过MySQL优化Discuz!的热帖翻页的技巧
  • sqlserver数据库中表的类型有哪些
  • win8系统忘记电脑开机密码怎么办
  • 网站windows
  • mac苹果系统怎么用
  • linux查找内容在哪个文件中
  • 事件查看器中"TermService" 服务的性能库问题处理
  • 苹果官网
  • windows8开机蓝屏
  • win7系统设置只让安装有证书的软件
  • win10 win8.1双系统
  • linux如何查看磁盘信息
  • win10磁贴保存位置
  • win7 24小时制
  • django实现登录注册功能
  • vue中拦截器
  • 使用jquery操作dom
  • 批处理清除保留扇区
  • unity怎么创建字体
  • shell脚本总结
  • python基础教程 入门教程
  • html css js 实战案例
  • javascript中的数据类型分为两大类
  • android editText inputType 各个字段的含义
  • 老司机指的是
  • socks5代理怎么用
  • 广东省国家税务局电子发票系统,网络设置
  • 安徽省建筑施工企业排名
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设