iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql使用limit分页优化方案
  • 872
分享到

mysql使用limit分页优化方案

mysql使用limit分页优化方案 2017-11-14 17:11:17 872人浏览 绘本
摘要

一、测试实验 Mysql分页直接用limit start, count分页语句:   select * from product limit start, count 当起始页较小时,查询没有性能问题,我们分别看下从1

一、测试实验

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分页问题的性能优化方法

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

我们都知道,利用了索引查询的语句中如果只包含了那个索引列(覆盖索引),那么这种情况会查询很快。

因为利用索引查找有优化算法,且数据就在查询索引上面,不用再去找相关的数据地址了,这样节省了很多时间。

另外Mysql中也有相关的索引缓存,在并发高的时候利用缓存就效果更好了。

在我们的例子中,我们知道id字段是主键,自然就包含了默认的主键索引。现在让我们看看利用覆盖索引的查询效果如何:
这次我们之间查询最后一页的数据(利用覆盖索引,只包含id列),如下:

 

select id from product limit 866613, 20 

查询时间为0.2秒,相对于查询了所有列的37.44秒,提升了大概100多倍的速度。

那么如果我们也要查询所有列,有两种方法,

  • id>=的形式:

 

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

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

  • 利用join

 

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

 

您可能感兴趣的文档:

--结束END--

本文标题: mysql使用limit分页优化方案

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 浅谈mysql使用limit分页优化方案的实现
    Mysql limit分页语句用法 与Oracle和MS SqlServer相比,mysql的分页方法简单的让人想哭。 --语法: SELECT * FROM table LIMIT [offs...
    99+
    2024-04-02
  • 如何在mysql中优化LIMIT分页
    这篇文章将为大家详细讲解有关如何在mysql中优化LIMIT分页,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、优化方法尽可能的使用覆盖索引扫描,而不是查询所有的列。然后根据需要做一次关联...
    99+
    2023-06-15
  • mysql limit分页性能如何优化
    MySQL的LIMIT子句用于限制查询结果集的数量。在使用LIMIT进行分页时,可以通过一些优化技巧提高性能。 以下是一些优化LIM...
    99+
    2024-04-09
    mysql
  • MySQL分页Limit的优化过程实战
    前言 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。 SELECT * FROM table LIMIT [o...
    99+
    2024-04-02
  • 如何进行limit分页优化
    这篇文章给大家介绍如何进行limit分页优化,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 看一个案例 点击(此处)折叠或打开 mysql> ...
    99+
    2024-04-02
  • SQL优化limit分页的方法是什么
    本篇内容介绍了“SQL优化limit分页的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!&nbs...
    99+
    2024-04-02
  • MYSQL limit的优化方法
    本篇内容主要讲解“MYSQL limit的优化方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MYSQL limit的优化方法”吧! ...
    99+
    2024-04-02
  • MySQL Limit性能优化及分页数据性能优化详解
    MySQL Limit可以分段查询数据库数据,主要应用在分页上。虽然现在写的网站数据都是千条级别,一些小的的优化起的作用不大,但是开发就要做到极致,追求完美性能。下面记录一些limit性能优化方法。 Lim...
    99+
    2024-04-02
  • MySQL如何使用limit方式实现分页
    这篇文章主要介绍了MySQL如何使用limit方式实现分页,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、limit 基本实现方式一般情况...
    99+
    2024-04-02
  • MySQL limit性能分析与优化
    一、结论 语法结构: limit offset, rows 结论:rows 相同条件下,offset 值越大,limit 语句性能越差 二、测试 执行测试: 5750000 条数据 sql 1 执行时间:...
    99+
    2024-04-02
  • 如何进行SQL优化中的limit分页优化
    如何进行SQL优化中的limit分页优化,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。示例 表aaaaa中共有2375690数据。优化前的S...
    99+
    2024-04-02
  • 使用Limit参数优化MySQL查询的方法
    要优化MySQL查询,可以使用LIMIT参数来限制返回的结果集的大小,以减少查询的时间和资源消耗。以下是一些使用LIMIT参数优化MySQL查询的方法:1. 限制返回的结果行数:使用LIMIT语句来限制返回的结果行数,可以减少查询的时间...
    99+
    2023-08-11
    Limit
  • mysql中limit优化的示例分析
    小编给大家分享一下mysql中limit优化的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!    ...
    99+
    2024-04-02
  • MySQL百万级数据分页查询优化方案
    当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多种方法和优化的点。下面简单说一下我知道的一些方法。 ...
    99+
    2024-04-02
  • 分析SQL优化的limit分页延迟关联
    这篇文章主要介绍“分析SQL优化的limit分页延迟关联”,在日常操作中,相信很多人在分析SQL优化的limit分页延迟关联问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分析...
    99+
    2024-04-02
  • Mysql中如何使用分页limit语句
    Mysql中如何使用分页limit语句,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。已经为我们提供了这样一个功能。 ...
    99+
    2024-04-02
  • Java之mybatis使用limit实现分页案例讲解
    1. Limit实现分页 1.1 为什么需要分页 减少数据的处理量 1.2 使用Limit实现分页 select * from user limit startInde...
    99+
    2024-04-02
  • mysql limit分页实现的方法是什么
    MySQL中的LIMIT语句用于限制查询结果的数量。它的基本语法如下: SELECT column1, column2, ....
    99+
    2024-04-09
    mysql
  • PostgreSQL中offset...limit分页优化的一些常见手段
    目录发现问题优化手段1:使用游标优化手段2:使用位点总结发现问题 大部分开发人员习惯使用order by offset limit进行分页,使用该方法可能会导致扫描的数据放大,因为offset的行会被扫描。表现就是一般o...
    99+
    2023-05-19
    postgresql offset limit postgresql 分页 sql 分页优化
  • 如何在MySQL中使用LIMIT进行分页查询
    在MySQL中,可以使用LIMIT关键字来实现分页查询。LIMIT语法如下: SELECT column1, column2...
    99+
    2024-04-09
    MySQL
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作