`

经典分享MySQL的limit查询优化

阅读更多

以下的文章主要是对MySQL limit查询优化的具体内容的介绍,我们大家都知道MySQL数据库的优化是相当重要的。其他最为常用也是最为需要优化的就是limit。MySQL的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降。

  同样是取10条数据

 

  1. select * from yanxue8_visit limit 10000,10       
  2. select * from yanxue8_visit limit 0,10    

  就不是一个数量级别的。

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

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

  1、offset比较小的时候

 

  1. 1.select * from yanxue8_visit limit 10,10   

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

 

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

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

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

  2、offset大的时候

 

  1. select * from yanxue8_visit limit 10000,10   

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

 

  1. Select * From yanxue8_visit Where vid >=(      
  2. 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的性能就急剧下降。

  以上的相关内容就是对MySQLlimit查询优化 的介绍,望你能有所收获。

 

 

来自:http://www.php100.com/html/webkaifa/database/Mysql/2010/1208/6985.html

分享到:
评论

相关推荐

    mysql分页的limit参数简单示例

    Mysql的分页的两个参数 select * from user limit 1,2 ... 您可能感兴趣的文章:详解MySQL的limit用法和分页查询语句的性能分析MYSQL分页limit速度太慢的优化方法mysql limit分页优化方法分享Mysql limit

    mysql limit分页优化方法分享

    今天发现一篇文章写了些关于limit优化的,很不错。 文中不是直接使用limit,而是首先获取到offset的id然后直接使用limit size来获取数据。根据他的数据,明显要好于直接使用limit。这里我具体使用数据分两种情况进行...

    MySQL性能优化的21个最佳实践.pdf

    本文档着重分享了MySQL数据库的性能优化实践,旨在帮助读者提升数据库操作的性能。下面详细介绍了各项优化技巧。 首先,针对查询缓存进行优化是提高数据库性能的有效方法之一。MySQL服务器默认开启了查询缓存,它...

    MySQL性能优化的最佳20多条经验分享

    - 当预期查询结果只有一行时,添加`LIMIT 1`可以提高查询效率,因为它使MySQL在找到第一行匹配数据后停止搜索,而非遍历所有结果。 4. **为搜索字段创建索引** - 对于频繁用于搜索的字段,建立索引可以极大加快...

    MySQL 百万级分页优化(Mysql千万级快速分页)

    以下分享一点我的经验 一般刚开始学SQL的时候,会这样写 代码如下: SELECT * FROM table ORDER BY id LIMIT 1000, 10; 但在数据达到百万级的时候,这样写会慢死 代码如下: SELECT * FROM table ORDER BY id LIMIT ...

    mybatis代码生成limit分页修复

    首先,我们先理解一下`LIMIT`在MySQL中的作用。`LIMIT`用于限制查询结果返回的数量,通常与`OFFSET`一起使用实现分页。例如,`SELECT * FROM table LIMIT 10 OFFSET 20`会返回第21到第30条记录。 在MyBatis中,分页...

    mysql查询语句汇总.zip

    2. **案例分析**:提供实际的查询示例,帮助理解在真实场景下如何构造和优化查询。 3. **最佳实践**:分享编写高效查询的建议,如避免全表扫描,合理设计索引等。 4. **错误处理和调试**:教授如何识别并解决查询...

    mysql 学习中 和大家分享一下

    - 使用`EXPLAIN`分析SQL执行计划,检查表扫描方式、使用的索引等信息,以优化查询性能。 ### 数据类型选择 - `CHAR`与`VARCHAR`的区别在于前者固定长度,后者可变长度,后者更节省空间。 - `NOT NULL`约束可以提高...

    Mysql性能优化方案分享

    2. **查询优化**:避免全表扫描,尽量使用LIMIT,减少子查询,考虑使用UNION ALL代替UNION,以及避免在索引列上使用函数。 3. **内存管理**:合理分配内存资源,如innodb_buffer_pool_size(InnoDB存储引擎的缓冲池...

    产品信息查询php+MySQL 源码学习分享

    这个"产品信息查询php+MySQL 源码学习分享"提供了一个基础的实例,可以帮助初学者理解如何结合这两种技术来实现一个简单的产品信息管理系统。 首先,让我们深入了解一下PHP。PHP(Hypertext Preprocessor)是一种...

    MySQL学习笔记分享

    `LIMIT`是MySQL特有的,用于分页查询,例如`LIMIT 0,5`会获取数据的前5条记录。 在创建表时,我们需要定义字段及其数据类型,如`CHAR`(定长字符串)和`VARCHAR`(变长字符串)。创建表的命令是`CREATE TABLE`,...

    12个优化MySQL的技巧小整理

    本文将分享12个优化MySQL的实用技巧,以帮助提升数据库的性能。 1. **避免编辑转储文件**:mysqldump生成的转储文件是数据库备份的重要形式,但直接编辑这些文件可能会导致数据损坏。如果需要修改,应使用SQL语句...

    mysql数据库常见的优化操作总结(经验分享)

    MySQL数据库的优化是提高应用程序性能的关键环节,尤其是在数据密集型应用中。以下是对标题和描述中涉及的一些关键知识点的详细说明: 1. **Index索引**:索引是提升数据库查询速度的重要手段。主键索引是每个表的...

    MySQL 用 limit 为什么会影响性能?.docx

    你真的会写一手好SQL吗?你真的深入了解数据库吗?你真的对MYSQL很理解吗?来自一线大厂资深数据库开发工程师的分享,纯粹干货,值得拥有。

    PHP+MYSQL 论坛系统

    "PHP+MYSQL 论坛系统"是一个基于PHP编程语言和MySQL数据库构建的在线社区平台,它允许用户进行讨论、分享观点、提问与解答问题。在这样的系统中,PHP作为服务器端脚本语言处理用户请求,而MySQL则负责存储和检索论坛...

    MySQL 性能优化的最佳20多条经验分享

    这对于识别性能瓶颈和优化查询至关重要。如果发现查询涉及大量行,可能需要调整查询策略或添加合适索引。 3. **LIMIT 1用于获取单行数据**:在明确只需要一条结果的情况下,使用`LIMIT 1`可加快查询速度。MySQL会在...

    MySQL高效分页解决方案集分享

    本文主要探讨了三种优化MySQL分页查询的方法,旨在提高查询效率。 首先,最基本的分页方式是使用`ORDER BY`配合`LIMIT`,如`SELECT * FROM content ORDER BY id DESC LIMIT 0, 10`。这种查询适用于数据量较小的情况...

Global site tag (gtag.js) - Google Analytics