你知道MySQL的Limit有性能问题吗


你知道MySQL的Limit有性能问题吗

MySQL的分页查询通常通过limit来实现。

MySQL的limit基本用法很简单。limit接收1或2个整数型参数,如果是2个参数,第一个是指定第一个返回记录行的偏移量,第二个是返回记录行的最大数目。初始记录行的偏移量是0。

为了与PostgreSQL兼容,limit也支持limit # offset #

问题

对于小的偏移量,直接使用limit来查询没有什么问题,但随着数据量的增大,越往后分页,limit语句的偏移量就会越大,速度也会明显变慢。

优化思想

避免数据量大时扫描过多的记录

解决

子查询的分页方式或者JOIN分页方式。

JOIN分页和子查询分页的效率基本在一个等级上,消耗的时间也基本一致。

白瓜面试 白瓜面试

白瓜面试 - AI面试助手,辅助笔试面试神器

白瓜面试 162 查看详情 白瓜面试

下面举个例子。一般MySQL的主键是自增的数字类型,这种情况下可以使用下面的方式进行优化。

下面以真实的生产环境的80万条数据的一张表为例,比较一下优化前后的查询耗时:

 -- 传统limit,文件扫描 [SQL]SELECT * FROM tableName ORDER BY id LIMIT 500000,2; 受影响的行: 0 时间: 5.371s -- 子查询方式,索引扫描 [SQL] SELECT * FROM tableName WHERE id >= (SELECT id FROM tableName ORDER BY id LIMIT 500000 , 1) LIMIT 2; 受影响的行: 0 时间: 0.274s -- JOIN分页方式 [SQL] SELECT * FROM tableName AS t1 JOIN (SELECT id FROM tableName ORDER BY id desc LIMIT 500000, 1) AS t2 WHERE t1.id <= t2.id ORDER BY t1.id desc LIMIT 2; 受影响的行: 0 时间: 0.278s

可以看到经过优化性能提高了将近20倍。

优化原理

子查询是在索引上完成的,而普通的查询时在数据文件上完成的,通常来说,索引文件要比数据文件小得多,所以操作起来也会更有效率。因为要取出所有字段内容,第一种需要跨越大量数据块并取出,而第二种基本通过直接根据索引字段定位后,才取出相应内容,效率自然大大提升。

因此,对limit的优化,不是直接使用limit,而是首先获取到offset的id,然后直接使用limit size来获取数据。

在实际项目使用,可以利用类似策略模式的方式去处理分页,例如,每页100条数据,判断如果是100页以内,就使用最基本的分页方式,大于100,则使用子查询的分页方式。

更多MySQL相关技术文章,请访问MySQL教程栏目进行学习!

以上就是你知道MySQL的Limit有性能问题吗的详细内容,更多请关注其它相关文章!


# limit  # 榆林关键词排名重要吗  # seo自媒体招聘  # 是在  # 就会  # 修改密码  # 第一个  # 也会  # 偏移量  # 解锁  # 你知道  # 镜像  # 分页  # mysql  # 陕西西安seo优化  # 肇庆一站式网站推广策划  # 苏州营销推广培训哪家好  # seo如何确定优化  # 网站建设属于什么费用  # 推广运营销售好做吗  # 文生成图片影响SEO  # 收录网站的推广方法是什么 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 顺丰速运官网查询入口 顺丰物流查询官网入口链接  mysql如何回滚事务_mysql ROLLBACK事务回滚方法  PHP动态导航按钮:根据用户登录状态切换链接与文本  c++如何实现观察者设计模式_c++行为型设计模式实战  热血江湖归来医师加点攻略  VBA Outlook邮件自动化:高效集成Excel数据与列标题的策略  win11怎么更改账户类型 Win11标准用户和管理员权限切换【教程】  Win10如何关闭开机锁屏界面_Windows10跳过锁屏直接登录设置  深入理解Python对象引用与链表属性赋值  哔哩哔哩黑名单怎么查看  win11自带录屏文件保存在哪里 Win11 Game Bar录制视频默认路径【分享】  163邮箱网页版入口 163邮箱在线使用  AO3中文版手机快速通道_AO3最新稳定链接更新  使用 J*aScript 随机化 CSS Grid 布局中的元素顺序  漫蛙漫画直连入口 _ manwa官方备用入口实时检测  斯宾塞称XGP云游戏“蒸蒸日上”:正在构建一个游戏从未如此唾手可得的未来  《气泡星球》兑换码礼包大全  优化 WooCommerce 产品价格显示与自定义短代码集成  附近酒吧怎么找?  苹果iPhone14ProMax如何新建AppleID_iPhone14ProMax新建AppleID具体流程  快递物流路径揭秘  外卖小程序对接第三方配送  iPhone 15 Pro如何查看存储空间占用_iPhone 15 Pro存储空间查看教程  知音漫客官网首页入口_知音漫客热门漫画推荐  漫蛙app官方版手机正版入口-漫蛙漫画manwa在线漫画正版入口  荣耀盒子应用管理技巧  FotoBalloon图片左右镜像教程  CSS布局中意外顶部空白的调试与解决:深入理解padding-top  MacBook Pro词典使用指南  使用VS Code作为你的个人知识管理系统  处理含命名空间的XML文件 Power Query中的高级技巧  Google Drive API 认证:服务账户与OAuth 2.0的选择与实践  小红书网页版在线直达 小红书网页版免费登录入口  苹果电脑如何快速查看电池状态 苹果电脑电池信息快捷方法  《edge浏览器》关闭翻译功能方法  电脑开不了机怎么办 电脑无法开机的解决方法  PHP魔术方法__set与__isset:设计考量、性能权衡与静态分析的视角  C++如何实现矩阵乘法_C++二维数组矩阵运算代码示例  一点万象签到领积分指南  《花瓣》创建专辑方法  百度识图图像分析 百度识图识别平台  一加 Ace 6V 快充无法启用_一加 Ace 6V 充电优化  vivo云服务一直提示空间不足怎么办 怎么办vivo云服务老是提示空间不足  CSS如何使用outline-offset与颜色组合突出元素边框  QQ邮箱注册地址 免费获取QQ邮箱账号  《崩坏:星穹铁道》3.6版本异相仲裁打法及配队推荐  深入理解随机递归函数的确定性:内部节点、叶节点与时间复杂度分析  晨报|开发商暗示《空洞骑士:丝之歌》DLC开发中 《合金装备4》有望重制  汽水音乐官网网页版入口 汽水音乐官网网页版在线入口  六级准考证号怎么查_四六级准考证查询入口官网 

 2019-06-19

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.