news 2026/6/10 16:46:53

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/6/8 7:34:00

完整指南:快速解锁Insyde BIOS隐藏功能

完整指南:快速解锁Insyde BIOS隐藏功能 【免费下载链接】LEGION_Y7000Series_Insyde_Advanced_Settings_Tools 支持一键修改 Insyde BIOS 隐藏选项的小工具,例如关闭CFG LOCK、修改DVMT等等 项目地址: https://gitcode.com/gh_mirrors/le/LEGION_Y7000…

作者头像 李华
网站建设 2026/6/10 10:57:18

OpCore Simplify:让黑苹果安装变得前所未有的简单

OpCore Simplify:让黑苹果安装变得前所未有的简单 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的OpenCore配置而头疼吗&…

作者头像 李华
网站建设 2026/6/10 12:28:42

不用再查了!Linux开机启动脚本最全避坑指南

不用再查了!Linux开机启动脚本最全避坑指南 1. 开机自启不是“写完就能跑”,这些坑你踩过几个? 你是不是也经历过:辛辛苦苦写好一个脚本,配置了开机自启,信心满满地重启系统,结果啥也没发生&a…

作者头像 李华
网站建设 2026/6/10 12:29:44

Fun-ASR系统设置全解析,选对设备事半功倍

Fun-ASR系统设置全解析,选对设备事半功倍 在语音识别技术日益融入办公、教育和客服场景的今天,越来越多用户选择本地化部署的 ASR(自动语音识别)系统来保障数据安全与处理效率。Fun-ASR 作为钉钉联合通义实验室推出的高性能语音识…

作者头像 李华
网站建设 2026/6/10 0:05:11

SmokeAPI终极指南:解锁Steam游戏DLC的完整解决方案

SmokeAPI终极指南:解锁Steam游戏DLC的完整解决方案 【免费下载链接】SmokeAPI Legit DLC Unlocker for Steamworks 项目地址: https://gitcode.com/gh_mirrors/smo/SmokeAPI SmokeAPI是一款专业的Steamworks DLC所有权模拟工具,专门用于在正版Ste…

作者头像 李华
网站建设 2026/6/10 12:31:54

三步搞定AI微信助手:零代码打造智能聊天机器人

三步搞定AI微信助手:零代码打造智能聊天机器人 【免费下载链接】wechat-bot 🤖一个基于 WeChaty 结合 DeepSeek / ChatGPT / Kimi / 讯飞等Ai服务实现的微信机器人 ,可以用来帮助你自动回复微信消息,或者管理微信群/好友&#xff…

作者头像 李华