返回顶部
首页 > 资讯 > 数据库 >为什么MySQL分页用limit会越来越慢
  • 843
分享到

为什么MySQL分页用limit会越来越慢

2024-04-02 19:04:59 843人浏览 安东尼
摘要

目录一、测试实验二、 对limit分页问题的性能优化方法2.1 利用表的覆盖索引来加速分页查询2.2 利用 id>=的形式:2.3 利用join总结:阿牛新入职了一家新公司,第

阿牛新入职了一家新公司,第一个任务是根据条件导出订单表中的数据到文件中,阿牛心想:这也太简单了,于是很快写好了如下语句,并且告诉测试自己的代码是免测产品。

语句如下:


select * from orders where name=‘lilei' and create_time>'2020-01-01 00:00:00' limit start,end

没想到上线一段时间后,生产开始预警,显示这条sql为慢SQL,执行时间50多秒,严重影响到了业务。
阿牛赶紧请教大佬猿猿帮忙查找原因,猿猿很快就帮其解决了,并且给阿牛做了以下实验:

一、测试实验

Mysql分页直接用limit start, count分页语句:


select * from product limit start, count

当起始页较小时,查询没有性能问题,我们分别看下从10, 100, 1000, 10000开始分页的执行时间(每页取20条),如下:


select * from product limit 10, 20 0.016秒
select * from product limit 100, 20 0.016秒
select * from product limit 1000, 20 0.047秒
select * from product limit 10000, 20 0.094秒

我们已经看出随着起始记录的增加,时间也随着增大, 这说明分页语句limit跟起始页码是有很大关系的,
那么我们把起始记录改为40w看下(也就是记录的一半左右)


select * from product limit 400000, 20 3.229秒

再看我们获取最后一页记录的时间


select * from product limit 866613, 20 37.44秒

像这种分页最大的页码页显然这种时间是无法忍受的。
从中我们也能总结出两件事情:
limit语句的查询时间与起始记录的位置成正比。
mysql的limit语句是很方便,但是对记录很多的表并不适合直接使用。

二、 对limit分页问题的性能优化方法

2.1 利用表的覆盖索引来加速分页查询

我们都知道,利用了索引查询的语句中如果只包含了那个索引列(覆盖索引),那么这种情况会查询很快。
因为利用索引查找有优化算法,且数据就在查询索引上面,不用再去找相关的数据地址了,这样节省了很多时间。
另外Mysql中也有相关的索引缓存,在并发高的时候利用缓存就效果更好了。
在我们的例子中,我们知道id字段是主键,自然就包含了默认的主键索引。现在让我们看看利用覆盖索引的查询效果如何:
这次我们之间查询最后一页的数据(利用覆盖索引,只包含id列),如下:


select id from product limit 866613, 20

查询时间为0.2秒,相对于查询了所有列的37.44秒,提升了大概100多倍的速度。
那么如果我们也要查询所有列,有两种方法,

2.2 利用 id>=的形式:


SELECT * FROM product 
WHERE ID > =(select id from product limit 866613, 1) limit 20

查询时间为0.2秒,简直是一个质的飞跃啊。

2.3 利用join


SELECT * FROM product a 
JOIN (select id from product limit 866613, 20) b ON a.ID = b.id

总结:

是不是认为我没说理由,原因就是使用select * 的情况下直接用limit 600000,10 扫描的是约60万条数据,并且是需要回表60W次,也就是说大部分性能都耗在随机访问上,到头来只用到10条数据,如果先查出来ID,再关联去查询记录,就会快很多,因为索引查找符合条件的ID很快,然后再回表10次。就可以拿到我们想要的数据。

到此这篇关于为什么MySQL分页用limit会越来越慢的文章就介绍到这了,更多相关MySQL分页limit慢内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: 为什么MySQL分页用limit会越来越慢

本文链接: https://lsjlt.com/news/131071.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 为什么MySQL分页用limit会越来越慢
    目录一、测试实验二、 对limit分页问题的性能优化方法2.1 利用表的覆盖索引来加速分页查询2.2 利用 id>=的形式:2.3 利用join总结:阿牛新入职了一家新公司,第...
    99+
    2024-04-02
  • 云服务器会越来越便宜吗为什么
    云服务器是一种提供按需计算服务的云计算平台,它的价格取决于多个因素,包括计算能力和可用性。 一般而言,云服务器的成本比本地硬件更加昂贵。由于需要使用大量的服务器和存储,云服务器的成本通常会非常高,因为它们需要支付租金和维护费用。此外,由于...
    99+
    2023-10-26
    便宜 服务器
  • 云服务器会越来越便宜吗为什么呢
    云服务器是一种提供按需计算资源和存储空间的云计算服务,它的价格取决于多个因素,主要包括服务器的数量、使用的软件、带宽、维护等方面。 一般而言,云服务器的价格会比较低,因为这些服务器都是由大型互联网公司或云服务提供商托管的,他们需要大量的数...
    99+
    2023-10-27
    什么呢 便宜 服务器
  • oracle分页越往后越慢怎么解决
    在Oracle数据库中,当查询结果集较大时,分页查询可能会变得越来越慢,这是因为每次查询都需要扫描整个结果集并跳过前面的记录以获取请...
    99+
    2024-04-17
    oracle
  • 使用海外网站服务器为什么会越来越卡
    使用海外网站服务器越来越卡的原因有:1、CPU使用率过高,导致海外网站服务器速度变慢;2、运行内存跑满,导致海外网站服务器速度变慢;3、海外网站服务器当前资源无法满足网站访问流量,导致速度变慢;4、遭遇流量型网络攻击,导致海外网站服务器速度...
    99+
    2024-04-02
  • 云服务器会越来越便宜吗为什么不能用
    云服务器(Cloud Storage, 即云服务器)是一种用于存储和共享计算资源的软件系统。云服务器可以让用户在本地或云端上轻松地管理、使用和存储他们的计算资源,而无需连接到特定的互联网或云服务提供商。因此,可以说云服务器是一种免费或廉价的...
    99+
    2023-10-27
    不能用 便宜 服务器
  • 为什么用php的人越来越少了?
    首先这张图反映的只是某个编程语言的热门程度。 以下代表个人观点: php这几年热度下降的原因: 存活时间长,在互联网技术日新月异的时代,一些更先进的技术会吸引一部分开发者 存活时间长,为了对历史版本作出一定的兼容,函数库的体积增大,一定程...
    99+
    2023-09-03
    php 开发语言
  • 云服务器会越来越便宜吗为什么不能用了
    1. 云服务器价格趋势 云服务器的价格在过去几年中一直在下降,这主要是由于云计算技术的不断发展和云服务提供商之间的激烈竞争。根据市场研究公司的数据,云服务器的价格在过去五年中已经下降了超过50%。这意味着,现在比以往任何时候都更容易获得高...
    99+
    2023-10-27
    用了 便宜 服务器
  • 云服务器会越来越便宜吗为什么呢苹果
    存储容量:云服务器可以为用户提供大量的存储容量,这意味着用户可以随时使用这些存储容量,而无需担心存储空间不足的问题。 数据安全性:云服务器可以为用户提供更加安全的数据存储环境,防止数据泄露和黑客攻击等安全问题。 成本:云服务器的价格相对于...
    99+
    2023-10-27
    什么呢 便宜 苹果
  • 云服务器会越来越便宜吗为什么呢苹果手机
    首先,云服务器的使用量会越来越大。随着互联网的普及,人们的工作和生活越来越依赖于互联网,而云服务器则可以让人们更加轻松地在不同的设备之间同步数据和应用程序。这些云服务器通常可以提供比传统服务器更快的响应速度,因此可以更快地满足人们的需求。此...
    99+
    2023-10-28
    什么呢 便宜 苹果
  • 香港服务器为什么越来越受欢迎
    香港服务器越来越受欢迎的原因:1、香港服务器所处的地理位置优越;是亚洲经济中心之一;2、香港服务器优化大陆线路,解决了国内各运营商的互通问题;3、使用香港服务器不需要进行繁琐的备案流程;4、香港服务器配置齐全,能够满足任何用户的需求;5、香...
    99+
    2024-04-02
  • 使用国外网站服务器为什么越来越卡
    使用国外网站服务器越来越卡的原因有:1、CPU使用率过高,导致国外网站服务器速度变慢;2、运行内存跑满,导致国外网站服务器速度变慢;3、国外网站服务器当前资源无法满足网站访问流量,导致速度变慢;4、遭遇流量型网络攻击,导致国外网站服务器速度...
    99+
    2024-04-02
  • 为什么越来越多人选择韩国服务器
    越来越多人选择韩国服务器的原因:1、韩国服务器带宽资源丰富、访问速度快,能够给予用户稳定的网络环境;2、韩国服务器安全防御能力强,领先的技术水平能够及时解决服务器故障问题,保证服务器能够不间断正常运行;3、韩国服务器不需要进行繁琐的备案流程...
    99+
    2024-04-02
  • 为什么越来越多的企业选择使用Python开发?
        近来,Python作为一种功能强大且通用的编程语言而广受好评,它具有非常清晰的语法特点,适用于多种操作系统,目前在国际上非常流行,正在得到越来越多的应用。1....
    99+
    2024-04-02
  • 为什么越来越多的人选择使用云服务器
    为什么越来越多的人选择使用云服务器?在当今数字时代,随着技术的不断发展和互联网的迅猛普及,越来越多的人选择使用云服务器来满足他们的日常业务需求。云服务器作为一种基于互联网的计算模型,具有许多优势,正逐渐改变着人们传统的数据存储与处理方式。...
    99+
    2024-01-24
    云服务器 云服务器知识
  • 为什么越来越多的人选择美国服务器
    选择美国服务器的原因有:1、美国服务器带宽大,访问速度快;2、美国服务器处于全球网络中心,其机房环境和员工的技术实力都很强;3、美国服务器配置高于国内主机,稳定性相对好一点。具体内容如下:美国服务器带宽大租用美国服务器可以解决网络不稳定、访...
    99+
    2024-04-02
  • 为什么越来越多的开发者选择使用 ASP 框架来实现分布式应用?
    随着分布式系统的发展和应用场景的不断扩大,越来越多的开发者选择使用ASP框架来实现分布式应用。为什么会出现这种趋势呢?在本文中,我们将深入探讨ASP框架的优势和特点,以及它在分布式应用中的应用。 首先,让我们了解一下ASP框架。ASP(Ac...
    99+
    2023-10-19
    框架 path 分布式
  • 云服务器存储数据:为什么越来越受欢迎?
    1. 云服务器存储数据的优势 随着云计算技术的发展,越来越多的企业开始将数据存储在云服务器上。相比传统的本地存储方式,云服务器存储数据有以下优势: 1.1 可扩展性 云服务器存储数据可以根据实际需求进行扩展,无需购买额外的硬件设备。这意味...
    99+
    2023-10-27
    受欢迎 服务器 数据
  • 亚马逊服务器市场:为什么越来越受欢迎?
    1. 亚马逊服务器市场的概述 亚马逊服务器市场是亚马逊公司提供的一项云计算服务,它允许用户租用亚马逊的服务器来运行他们的应用程序和服务。这个市场提供了各种不同类型的服务器,包括虚拟机、容器、数据库、存储和网络服务等。用户可以根据自己的需求...
    99+
    2023-10-27
    亚马逊 受欢迎 服务器
  • Python入门很难吗? 为什么越来越多的人都学Python?
    Python都说是最容易学习的编程语言,但是为什么还是有很多的小白在学习的过程中学的云里雾里,一天到晚都是报错,异常,这也怪不得会有那么多人说,学Python是从入门到入土!其实一门编程语言不像语文那样。靠死记硬背就行了的,他是需要结合实战...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作