mysql limit分页优化详细介绍

 更新时间:2016年12月24日 08:42:06   投稿:lqh  
MySQL最常用也最需要优化的就是limit,MySQL的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降,需要的朋友可以参考下

mysql limit分页优化

同样是取10条数据

select * from yanxue8_visit limit 10000,10

select * from yanxue8_visit limit 0,10 

就不是一个数量级别的。

网上也很多关于limit的五条优化准则,都是翻译自MySQL手册,虽然正确但不实用。今天发现一篇文章写了些关于limit优化的,很不错。

文中不是直接使用limit,而是首先获取到offset的id然后直接使用limit size来获取数据。根据他的数据,明显要好于直接使用limit。这里我具体使用数据分两种情况进行测试。(测试环境win2033+p4双核 (3GHZ) +4G内存 MySQL 5.0.19)

1、offset比较小的时候。

select * from yanxue8_visit limit 10,10 

多次运行,时间保持在0.0004-0.0005之间

Select * From yanxue8_visit Where vid >=( 
  Select vid From yanxue8_visit Order By vid limit 10,1 
) limit 10 

多次运行,时间保持在0.0005-0.0006之间,主要是0.0006

结论:偏移offset较小的时候,直接使用limit较优。这个显然是子查询的原因。   

2、offset大的时候。

select * from yanxue8_visit limit 10000,10 

多次运行,时间保持在0.0187左右

Select * From yanxue8_visit Where vid >=( 
  Select vid From yanxue8_visit Order By vid limit 10000,1 
) limit 10 

多次运行,时间保持在0.0061左右,只有前者的1/3。可以预计offset越大,后者越优。

以后要注意改正自己的limit语句,优化一下MySQL了

小结:MySQL的优化是非常重要的。其他最常用也最需要优化的就是limit。MySQL的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • CentOS7版本安装Mysql8.0.20版本数据库的详细教程

    CentOS7版本安装Mysql8.0.20版本数据库的详细教程

    这篇文章主要介绍了CentOS7版本安装Mysql8.0.20版本数据库的教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Mongodb中关于GUID的显示问题详析

    Mongodb中关于GUID的显示问题详析

    这篇文章主要给大家介绍了关于Mongodb中GUID的显示问题,文中通过示例代码介绍的非常详细,对大家学习或者使用Mongodb具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-05-05
  • 简单了解mysql方言dialect

    简单了解mysql方言dialect

    这篇文章主要介绍了简单了解数据库方言dialect,数据库方言也是如此,MySQL 是一种方言,Oracle 也是一种方言,MSSQL 也是一种方言,他们之间在遵循 SQL 规范的前提下,都有各自的扩展特性,需要的朋友可以参考下
    2019-07-07
  • MySQL迁移到PostgreSQL操作指南

    MySQL迁移到PostgreSQL操作指南

    这篇文章主要介绍了MySQL迁移到PostgreSQL操作指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起来学习吧
    2023-10-10
  • Mysql并发常见的死锁及解决方法

    Mysql并发常见的死锁及解决方法

    死锁是在并发执行的过程中,两个或多个事务相互等待对方释放资源的情况,本文主要介绍了Mysql并发常见的死锁及解决方法,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • MySQL数据库迁移后无法启动的问题解决

    MySQL数据库迁移后无法启动的问题解决

    本文主要介绍了MySQL数据库迁移后无法启动的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2025-06-06
  • MySQL+Navicat安装配置保姆级教程

    MySQL+Navicat安装配置保姆级教程

    这篇文章主要介绍了MySQL+Navicat安装配置教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • 从云数据迁移服务看MySQL大表抽取模式的原理解析

    从云数据迁移服务看MySQL大表抽取模式的原理解析

    这篇文章主要介绍了从云数据迁移服务看MySQL大表抽取模式的原理解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • MYSQL数据表损坏的原因分析和修复方法小结(推荐)

    MYSQL数据表损坏的原因分析和修复方法小结(推荐)

    MYSQL数据表损坏的原因分析和修复方法小结,碰到的朋友可以参考,下面整理一些比较全,希望对大家有所帮助。
    2011-01-01
  • MySQL 虚拟列和虚拟索引的实现示例

    MySQL 虚拟列和虚拟索引的实现示例

    在MySQL 5.7及更高版本中,虚拟列是一个非常有用的特性,本文主要介绍了MySQL 虚拟列和虚拟索引的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2025-03-03

最新评论