前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql 大数据量的分页优化

mysql 大数据量的分页优化

作者头像
dys
发布2018-04-02 16:02:28
1.3K0
发布2018-04-02 16:02:28
举报
文章被收录于专栏:性能与架构性能与架构

使用limit进行分页,翻到10000多页后效率低

原因

limit offset 会逐行查找,是先查询再跳过

优化思路

(1)从业务逻辑

不允许翻过100页,例如百度一般可以翻到70页左右

(2)技术上

select * from table limit 5000000,10 时就很慢了,大概需要4秒多

优化方法(1)

select * from table where id>5000000 limit 10;

这样就非常快,0.02s左右,因为使用了id索引

但这样用有前提,id是连续的,中间的数据不能删,否则id为5000000的并不是第5000000个记录

优化方法(2)

如果必须用limit offset查询,就用延迟关联

select id from table limit 5000000,10

这样只查询id列,实现了索引覆盖,就会很快

select t.* from table t inner join (select id from table limit 5000000,10) as tmp on t.id=tmp.id;

通过内连接再获取分页后每条记录的详细信息

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档