加入收藏 | 设为首页 | 会员中心 | 我要投稿 91站长网 (https://www.91zhanzhang.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

使用limit,offset分页场景时会慢的原由是什么

发布时间:2022-02-12 14:47:55 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要介绍使用limit,offset分页场景时会慢的原因是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 从一个问题说起 五年前在腾讯的时候,发现分页场景下,mysql请求速度非常慢。数据量只有10w的情况下,select xx from
        这篇文章主要介绍使用limit,offset分页场景时会慢的原因是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
 
从一个问题说起
 
       五年前在腾讯的时候,发现分页场景下,mysql请求速度非常慢。数据量只有10w的情况下,select xx from 单机大概2,3秒。
 
       我就问我师父为什么,他反问“索引场景,mysql中获得第n大的数,时间复杂度是多少?”
 
答案的追寻
 
确认场景
 
假设status上面有索引。select * from table where status = xx limit 10 offset 10000。
 
会非常慢。数据量不大的情况就有几秒延迟。
 
小白作答
 
那时候非常有安全感,有啥事都有师父兜着,反正技术都是组里最差的,就瞎猜了个log(N),心想找一个节点不就是log(N)。自然而然,师父让我自己去研究。
 
这一阶段,用了10分钟。
 
继续解答
 
仔细分析一下,会发现通过索引去找很别扭。因为你不知道前100个数在左子树和右子数的分布情况,所以其是无法利用二叉树的查找特性。

(编辑:91站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读