Mysql千万级数据快速分页查询方案
文章目录
实际应用场景说明
服务器配置
: 阿里云 2核4G mysql服务器生产场景
: 将mysql数据库中的文章数据进行批量化处理更新问题详情
: 当分页数过大时查询速度很慢解决方法
: 使用了between and 的方式来加快了查询速度
1.limit方法的局限性
select * from articles limit 100,500
> 查询0.06秒
- 1
- 2
-
limit是最常用的分页方法,它在执行过程中,相当于先遍历了前100个,然后取了第100到600个,舍弃了前100个.但是limit仅适用于小数据范围内的分页查询
小数据
select * from articles limit 170500,500
查询 193s
-
当查询170500开始的500条数据时,因为要先查询前170500条数据,数据内容庞大,所以查询很慢
2.通过主键id过滤的方法
select * from articles where id >(select id from articles limit 170500,1) limit 500
> 查询 2.5s
- 1
- 2
- 这种方法的好处是首先通过id索引快速定位到了分页数据的起始位置(
避免了全文检索
),并且用limit 方法快速获取了从起始位置往后的500个数据。
3.between and
select * from articles where id between (select id from articles limit 170000,1) and (select id from articles limit 170500,1)
> 查询 2s
- 1
- 2
最优方法between and
前一种方法相当于是先利用id索引的优势快速定位到了分页的起始位置,然后往后截取了500条数据.between and的方法相当于也是利于id索引的优势,但是同时定位了分页的起始和终止的位置,截取了中间的信息,因此速度会更快.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南