`

mysql limit查询优化

阅读更多
MYSQL的优化是非常重要的。其他最常用也最需要优化的就是limit。mysql的limit给分页带来了极大的方便,但数据量一大的时候,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在进行数据分页时非常便捷,但在处理大数据量时,LIMIT查询可能会遇到性能瓶颈,特别是在涉及到大...

    MySQL数据库查询优化

    第3课 查询优化技术理论与MySQL实践(一)------子查询的优化(一) 第4课 查询优化技术理论与MySQL实践(二)------子查询的优化(二) 从理论看,子查询包括的内容和范围,建立清晰的概念 从实践看,MySQL的子查询...

    MYSQL分页limit速度太慢的优化方法

    MySQL中的分页查询是Web应用中常见的操作,但随着数据量的增长,`LIMIT`语句在处理大量数据时性能会显著下降。特别是当`OFFSET`值增大时,MySQL需要扫描更多的行来找到需要的数据,这可能导致查询速度变慢,甚至对...

    Mysql Limit 分页查询优化详解

    总的来说,MySQL LIMIT分页查询的优化主要集中在减少不必要的行扫描、利用索引以及采用更适合大数据量的查询策略。通过这些方法,可以显著提升分页查询的性能,尤其是对于那些需要跳过多行的情况。在实际应用中,应...

    Mysql limit 查询优化详细分析一则

    1. 版本 1)操作系统版本 cat /proc/version Linux version 3.10.0-957.5.1.el7.x86_64 ...mysql Ver 14.14 Distrib 5.7.22, for linux-glibc2.12 (x86_64) using EditLine wrapper 2. 问题描述 2.1 问题发现  有如

    mysql分页之limit优化技巧

    本文档针对mysql分页之limit慢的问题,使用联合索引在大数据量的情况下优化limit分页的性能

    MySQL数据库查询优化技术

    在MySQL中,优化查询能够显著提升数据检索的速度,降低服务器负载,从而提高整体应用的效率。以下是一些关于MySQL查询优化的核心知识点: 1. **索引优化**:索引是提升查询速度的关键。合理创建主键、唯一索引、...

    mysql分页的limit参数简单示例

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

    mysql limit分页优化详细介绍

    7. **优化查询语句**:结合业务逻辑,尝试简化查询条件,减少JOIN操作,提高整体查询效率。 8. **考虑使用窗口函数**:MySQL 8.0引入了窗口函数,如`ROW_NUMBER()`,可以直接生成行号,从而避免使用OFFSET,但这...

    MySQL Limit性能优化及分页数据性能优化详解

    MySQL中的`LIMIT`子句是用于限制SQL查询返回的行数,特别适用于分页查询,即在网页或其他界面中按页显示数据。然而,当处理大量数据时,不恰当的`LIMIT`使用可能会导致显著的性能下降。以下是对`LIMIT`性能优化及...

    MySQL海量数据查询优化策略.

    29. 注意SQL语句的书写和格式化:书写清晰的SQL语句有助于SQL Server更有效地优化查询。 30. 避免SQL注入:使用参数化查询或适当的转义机制是防止SQL注入攻击的常见做法。 对于MySQL的海量数据查询优化,还应当...

    提升MYSQL查询效率的10个SQL语句优化技巧.doc

    "MYSQL 查询效率优化技巧" ...查询优化器可以帮助你优化查询语句,例如,rearranging the order of tables in a multi-table query. 通过应用这些技巧,你可以提高 MySQL 查询效率,提高程序的执行速度。

    MySQL数据库优化SQL篇PPT课件.pptx

    从执行计划、SELECT语句、IN和EXIST语句、LIMIT语句、RAND函数、Order by、Group by、Distinct和Count等方面对MySQL数据库优化进行了详细的讲解。 一、执行计划 执行计划是MySQL数据库优化的重要步骤。执行计划...

    mysql_海量数据库的查询优化及分页算法方案.doc

    使用查询优化器可以自动优化查询语句,例如:EXPLAIN SELECT * FROM table1 WHERE name=’张三’ AND tID > 10000。 四、结论 本文详细介绍了 MySQL 海量数据库的查询优化和分页算法方案,包括查询优化的原理、...

    mysql优化limit查询语句的5个方法

    mysql的分页比较简单,只需要limit offset,length就可以获取数据了,但是当offset和length比较大的时候,mysql明显性能下降 1.子查询优化法 先找出第一条数据,然后大于等于这条数据的id就是要获取的数据 缺点:...

    基于MySQL的数据库查询性能优化.pdf

    "基于MySQL的数据库查询性能优化" 在当前的Web应用开发中,数据库的查询操作已经成为整个应用的性能瓶颈, especialmente 对于使用 MySQL 的 Web 应用。因此,数据库查询性能的优化已经成为一个非常重要的课题。...

Global site tag (gtag.js) - Google Analytics