• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 高效的mysql分页方法及原理

高效的mysql分页方法及原理

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql高效编程,mysql 高效分页,高效mysql,mysql高效编程 pdf,mysql读写分离原理等相关知识,希望本文的分享对您有所帮助

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

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

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

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

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

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

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

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • mysql高效导数据的方法讲解
  • 高效的mysql分页方法及原理

相关文章

  • 2018-12-05Oracle 数据库自动存储管理-安装配置
  • 2018-12-05MySQL的数据类型和建库策略分析详解
  • 2018-12-05mysql GTID主从复制详解
  • 2017-05-11PHP使用mysqli扩展连接MySQL数据库
  • 2018-12-05sqlserver 数据库学习笔记
  • 2018-12-05整理一下SQLSERVER的排序规则
  • 2017-05-11MySQL提示:The server quit without updating PID file问题的解决办法
  • 2018-12-05Mysql搜索引擎及其区别
  • 2018-12-05MySQL安全设置图文教程
  • 2018-12-05Oracle update关联表的思路总结

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySQL查看、删除及重命名数据表(MYSQL数据表操作教程3)
    • 解决 phpmyadmin #2002 无法登录 MySQL 服务器
    • MySQL 数据类型 大全
    • MySQL查询优化:用子查询代替非主键连接查询实例介绍
    • MHA自动Failover与手动Failover的切换原理
    • mysql order by rand() 效率优化方法
    • Mysql help命令(帮助信息)中文注解
    • [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln222] Failed to get master_ip_failover_script
    • notepad++批量定格式替换
    • mysql实现条件限制语句的实例(二)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有