当前位置: 首页> 房产> 建材 > 品牌建设和品牌打造_云桥在线客服_市场监督管理局上班时间_深圳网络营销推广专员

品牌建设和品牌打造_云桥在线客服_市场监督管理局上班时间_深圳网络营销推广专员

时间:2025/7/15 15:15:00来源:https://blog.csdn.net/L1951381654/article/details/147520330 浏览次数:0次
品牌建设和品牌打造_云桥在线客服_市场监督管理局上班时间_深圳网络营销推广专员

什么是深度分页问题?该如何解决呢?这篇文章展开讲讲

什么是深度分页?

当查询结果集非常大时,需要获取靠后页码的数据,比如第1000页、10000页。

如:

SELECT * FROM table LIMIT 10000, 10;  -- 获取第10001-10010条记录

深度分页的性能如何?

1.全表扫描:MySQL需要先读取10010行,然后丢弃前10000行
2.内存消耗:临时存储大量中间结果
3.IO压力:需要加载大量数据页到内存
4.响应时间:随着offset(偏移量)增大,查询时间线性增长

二、解决方案对比:

1.游标分页:

原理:记录上一页最后一条记录的ID,作为下一页的查询条件

-- 第一页
SELECT * FROM table ORDER BY id LIMIT 10;-- 后续页(假设上一页最后id=10)
SELECT * FROM table WHERE id > 10 ORDER BY id LIMIT 10;

优点:

  • 时间复杂度为O(1)
  • 无性能衰减

缺点:

  • ID必须是连续自增的
  • 不支持跳页

2.延迟关联:

原理:先通过覆盖索引获取ID,再关联原表

SELECT t.* FROM table t
JOIN (SELECT id FROM table ORDER BY col LIMIT 100000, 10) tmp
ON t.id = tmp.id;

优点:

  • 减少回表操作
  • 比LIMIT快5-10倍

缺点:

  • 需要复杂排序的分页
  • 不能使用游标分页时
关键字:品牌建设和品牌打造_云桥在线客服_市场监督管理局上班时间_深圳网络营销推广专员

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: