select * from table_a limit m,n;

MySQL的 limit m,n 工作原理就是先读取符合where条件的前面m+n条记录,然后抛弃前m条,返回后面n条,所以m越大,偏移量越大,性能就越差。这也是大部分ORM框架生成的分页sql。

那么如何优化呢?

如果 id 是简单的数字,可以这么优化

select * from table_a where id > 1000000 limit 10;

能这么优化是有前提的:

1、没有总页数
2、只能上下翻页
3、id必须有序且唯一

而且现实场景不如像我们例子中那么简单,id 一般可能不是数字,数字的语义过于单薄。

不过类似的,比如我们要查一个有订单号,有业务类型,订单状态的数据行出来,类似上面描述的3个条件,我们要这里的id叫位点(或者游标),要让位点有序且唯一那么设计成:

订单号_时间戳_业务类型

唯一靠订单号、业务类型、时间戳(订单创建时间、订单付款时间、订单确认收货时间)保证,有序靠时间戳保证。

特定的业务有特定的位点设计,上述的位点设计适用于大多数电商场景,其他场景怎么解决深度翻页的位点设计具体业务根据业务特点类似的设计就行。

MySQL 如何解决深度翻页相关推荐

  1. 34.scrapy解决爬虫翻页问题

    34.scrapy解决爬虫翻页问题 参考文章: (1)34.scrapy解决爬虫翻页问题 (2)https://www.cnblogs.com/lvjing/p/9706509.html (3)htt ...

  2. elasticsearch翻页与深度翻页,以及获取全部数据

    我们通常会有需求:根据指定条件,查询数据.并分页展示.甚至还有可能要导出全部的数据. 在工作中,经常会有需求,将指定条件的数据导出(这个数据量多数在2亿以上,有一次是18亿).导出数据的速度是挺慢的, ...

  3. 用 Python selenium爬取股票新闻并存入mysql数据库中带翻页功能demo可下载

    用 Python selenium爬取实时股票新闻并存入mysql数据库中 1.分析需求 2.创建表 3.分析需要爬取的网页内容 4.python里面selenium进行爬虫操作 1.添加包 2.连接 ...

  4. java mysql jsp分页代码_JAVA/JSP学习系列之六(MySQL翻页例子)

    JAVA/JSP学习系列之六(MySQL翻页例子) 更新时间:2006年10月13日 00:00:00   作者: 一.运行前准备 下载了mysql的jdbc驱动(一个jar文件)并加载在CLASSP ...

  5. mysql+翻页性能,mysql 翻页优化

    mysql翻页优化 对于翻页,我们通常是用 select fields from table limit 100,10 但是当要越翻后面的页数之后,耗时变得很长 select fields from ...

  6. MySQL中的翻页优化和延迟缓存

    limit offset,N 当offset非常大时,效率极低.  原因是:mysql并不是跳过offset行,然后单取N行.而是取offset+N行. 返回时,放弃前offset行,返回N行.效率较 ...

  7. mysql大翻页limt 1700,100慢优化方案

    1.引言 公司有个需求,统计短信系统每天status没成功的电话号码,然后进行统计分析.为了省事,我直接用了现成的sql, 该sql是分页,每次筛选limit一百条,最后合并下,最后不就得出所有的手机 ...

  8. MYSQL数据库的翻页

    这个是我自己想出来的,当时只想到这么个笨方法. 看到不少人都在问MYSQL怎么翻页,现在拿出来给大家借鉴一下. 如果有好的方法请留言.大家互相探讨. <script language=" ...

  9. mysql 的翻页查询

    前言: 前段时间在写 mybatis-plus 的翻页查询功能的时候突然想到,mysql 语句本身肯定是有翻页查询的功能,所以研究一波. limit 实现翻页 sql 语句还是正常写,但是要在后面加上 ...

最新文章

  1. wireshark的使用教程--用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的
  2. Spring Cloud Alibaba - 12 使用Nacos的元数据实现金丝雀发布功能
  3. hdu 4109 Instrction Arrangement 拓扑排序 关键路径
  4. linux 的多进程运行机制,Linux 多进程-2
  5. javax.xml.bind.UnmarshalException: 意外的元素 (uri:, local:xml)。所需元素为(none)
  6. 样条之贝塞尔(Bezier)
  7. 中科大陈秀雄团队成功证明凯勒几何两大核心猜想,研究登上《美国数学会杂志》...
  8. DHPST云主机分销系统源码
  9. 牛刀小试MySQL--基于GTID的replication
  10. yum install php-pecl-mongo,pecl安装php mongodb扩展
  11. 专访阿里云技术掌舵人蒋江伟:中台是企业的未来
  12. Spring常用设计模式--抽象工厂模式
  13. 网易mysql微专业_网易MySQL数据库工程师微专业学习笔记(一)
  14. 五年级上册分数计算机,分数计算题 五年级上册分数加减法计算题(100道)
  15. Mysql Workbench connection ssl not enable问题解决
  16. 浅析IDC行业的前景
  17. 九、用场效应管设计与门
  18. 3ds Max 实验八 使用可编辑多边形实战
  19. 很棒的一篇职业规划文章(2)
  20. [API ]新浪微博腾讯QQ音乐网易云音乐小米云钉钉笔记百度高德地图淘宝阿里云 API

热门文章

  1. Win10驱动开发2——双机调试
  2. 3000亿美元市值的Facebook承认害怕广告屏蔽软件
  3. 企业内网邮件钓鱼测试新手指南
  4. 朱凯:ClickHouse 全貌介绍与年度最令人兴奋的五大新特性
  5. 2021年Android工作或更难找,系列教学
  6. php使用区块链_PHP实现区块链
  7. angularjs和js中同一个元素上如何实现ng-click(onclick),ng-dblclick(ondblclick)事件
  8. (三)、从零开始搭建人脸识别服务之大规模人脸识别
  9. 设计驱动儿童教育应用——“斑马骑士”创始人徐毅斐专访
  10. slot,插槽二三事