位置: 编程技术 - 正文

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

  • 即征即退需要缴纳税款吗
  • 税务ukey电子发票二维码用什么扫码
  • 个税返还款要交增值税吗
  • 库存商品转为固定资产说明
  • 开办期间的费用,没有发票,咋抵扣啊
  • 个体每月开票超10万
  • 软件企业购进软件服务怎么入账
  • 分公司注销后账户不注销可以吗
  • 专用发票抵扣联放在凭证中吗
  • 销售退回的增值税怎么处理
  • 汽车租赁的印花税税率
  • 职工基本医疗保险单位交的钱去哪里了
  • 支付给银行的借款利息属于什么会计要素
  • 公司以银行存款名义为员工垫付医疗费分录怎么写
  • 小规模增值税未开票收入填哪里
  • 新企业残保金免交三年超过30人
  • 固定资产折旧年限及残值率
  • 预缴所得税多交了汇算时可以抵扣下一年的所得税吗
  • 个税在发工资的时候直接扣下来吗
  • 处置报废车辆如何缴纳增值税
  • 最新企业会计准则
  • 苹果电脑mac系统怎么升级
  • 结转采购材料的实际成本会计分录怎么写
  • 计提城市维护费分录
  • php获取信息
  • 发票已认证还能作废吗2020
  • 一般纳税人购进税控收款机抵扣
  • u盘写保护格式化
  • 总公司固定资产包括哪些
  • 仓储服务和不动产租赁
  • 赖格宝视频
  • php addslashes函数
  • 外贸行业税率
  • vue3打包优化
  • 工会经费免征三年的文件山东
  • swift 协议扩展
  • php jquery
  • 农民工工资专用账户打款比例
  • 结转成本涉及的科目
  • 企业交房租没有发票能充费用吗
  • 所得税费用可以计入税金及附加吗
  • 计提固定资产折旧是什么意思
  • mysql存储引擎有哪些区别
  • 金税四期对企业影响
  • 合伙企业分配利润法律依据
  • 主营业务成本里的工资
  • 纳税调整收入包括哪些
  • 今年缴纳上年的税收滞纳金
  • 外购商品科目设置
  • 小规模纳税人超过30万是全额纳税吗
  • 银行结算卡年费多少
  • 费用利润率的意思
  • 美国支票上的收款人地址不对怎么办
  • 个体工商户如何缴纳社保
  • MySQL数据库同时查询更新同一张表的方法
  • sql server的go
  • ubuntu从u盘安装软件
  • win7自带的多媒体播放程序是什么
  • centos5安装步骤
  • win7系统重装后没声音
  • 新买的读卡器不读卡,提示放入驱动盘
  • win xp怎么样
  • centos中netspeeder网络加速/优化器的安装方法
  • win8系统如何关机
  • window10稳定版
  • 如何改进个人工作作风
  • jquery禁止点击事件
  • php获取当前脚本路径
  • android解析
  • Android platform build guide for Exynos-4412(odroid -X/X2/U2/U3/Q2/Q)
  • android-ListView(1)-listview概览
  • Jquery实现select multiple左右添加和删除功能的简单实例
  • 河南省低保信息查询
  • 贵州网上税务局官网登录
  • 矿产资源税的计税依据
  • 河北省国家税务局电话
  • 买下中国需要多少钱?
  • 发票开票系统可以查询上一年发票吗?
  • 诚信励志语录经典短句
  • 国税局信息中心事业编待遇
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设