news 2026/3/10 1:23:52

MySQL面试题 如何解决深分页?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL面试题 如何解决深分页?

深分页为什么会慢?

深分页select * from table limit offset,size它不是跳过offset条,而是从第一条开始扫描,舍弃前面的offset条,最后再取出size条数据
所以offset越大,需要扫描的行数就越多,就会越慢

深分页怎么解决?

1.子查询+覆盖索引

子查询就是先通过索引定位到起始id,再通过id去主键索引里找数据

SELECT*FROMordersWHEREid>=(SELECTidFROMordersORDERBYidLIMIT1000000,1)ORDERBYidLIMIT20;

先通过覆盖索引先定位到要要取的二十个主键,再回表查完整数据

SELECTo.*FROMorders oJOIN(SELECTidFROMordersORDERBYidLIMIT1000000,20)tONo.id=t.id;
2.游标分页

游标分页就是每次查询都需要先提供上一页的最后一条数据的id,查询时根据这个id跳过前面的数据

SELECT*FROMordersWHEREid>1000000ORDERBYidLIMIT20;

游标分页的局限性

  1. 只能一页一页的查询,不能条页
  2. 需要id是递增的
  3. 删除数据可能导致分页错乱。比如用户在看第 2 页时,第 1 页的数据被删了,刷新后原本在第 2 页的内容会“顶”到第 1 页,导致翻页时漏掉部分信息。

业务层面的解决方案

1)限制最大翻页数。Google 搜索、淘宝商品列表都不让你翻到第 10000 页。大部分用户不会真的翻那么多页,限制一下既省资源又合理。

2)改交互方式。无限滚动加载就是典型的游标分页场景,用户感知不到页码,也不需要跳页。

3)缩小数据范围。深度分页通常说明数据量太大,可以引导用户加筛选条件,把结果集控制在合理范围内。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/2 0:03:13

浏览器媒体资源捕获完全手册:从入门到精通

浏览器媒体资源捕获完全手册:从入门到精通 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在当今多媒体内容爆炸的时代,如何高效获取网络视频资源成为用户关注的焦点。猫抓资源…

作者头像 李华
网站建设 2026/3/3 21:40:05

万物识别-中文-通用领域垃圾分类系统:智能回收站部署实战

万物识别-中文-通用领域垃圾分类系统:智能回收站部署实战 你有没有想过,一个垃圾桶也能“看懂”你手里的垃圾是什么?不是科幻,而是现实。借助阿里开源的万物识别模型,我们今天要动手搭建一套中文通用领域的智能垃圾分…

作者头像 李华
网站建设 2026/3/8 6:50:06

YOLOv9训练性能评测:GPU利用率高达92%的部署优化技巧

YOLOv9训练性能评测:GPU利用率高达92%的部署优化技巧 你是否试过跑YOLOv9训练,看着GPU使用率在60%上下徘徊,显存却早已吃满?明明是A100或RTX 4090,却像被捆住手脚——数据加载慢、梯度同步卡顿、batch size不敢调高……

作者头像 李华
网站建设 2026/3/3 14:52:20

男装竞争白热化?看先知AI如何重塑产业价值链

当下男装市场的竞争,早已超越了款式与价格的简单比拼,深入到供应链响应速度、个性化体验与品牌内容创新的全方位较量。北京先智先行科技有限公司深刻洞察这一趋势,其精心打造的“先知大模型”、“先行AI商学院”与“先知AIGC超级工场”三位一…

作者头像 李华
网站建设 2026/2/26 18:18:06

Z-Image-Turbo与DALL·E对比:本地开源VS API调用部署实战评测

Z-Image-Turbo与DALLE对比:本地开源VS API调用部署实战评测 1. 引言:图像生成的两种路径选择 你是不是也经常在想:到底该用本地部署的AI图像模型,还是直接调用像DALLE这样的云端API?一边是看得见摸得着、数据完全掌控…

作者头像 李华
网站建设 2026/3/9 21:18:37

Hunyuan-MT在低算力GPU运行?轻量化部署实战教程

Hunyuan-MT在低算力GPU运行?轻量化部署实战教程 1. 为什么你也能跑起大模型翻译? 你是不是也以为,像“支持38种语言互译”的翻译大模型,非得配个A100、显存40G起步才能跑? 其实不然。今天我们要讲的这个模型——Huny…

作者头像 李华