`
ssxxjjii
  • 浏览: 951043 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql limit查询优化(数据量大的时候很优)

 
阅读更多

mysql limit查询优化[转载],由于limit经常用到,却没有注意,因为平时做的项目都比较小,所以也没有考虑去怎么优化,今天看了一篇关于mysql limit优化的文章,感觉很好 于是转载过来

原文地址在这里
http://www.phpobject.net/blog/read.php?119

MYSQL的优化是非常重要的。其他最常用也最需要优化的就是limit。mysql的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降。
同样是取10条数据

select * from yanxue8_visit limit 10000,10

 

select * from yanxue8_visit limit 0,10


就不是一个数量级别的。

网上也很多关于limit的五条优化准则,都是翻译自mysql手册,虽然正确但不实用。今天发现一篇文章写了些关于limit优化的,很不错。原文地址:http://www.zhenhua.org/article.asp?id=200

文中不是直接使用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了

<script type="text/javascript"></script>

分享到:
评论

相关推荐

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

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

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

    18. 限制返回的数据量:使用LIMIT来减少返回给客户端的数据量可以减轻服务器负载,并且提高查询响应速度。 19. 避免使用SELECT *:在只需要部分列时,应当明确指出需要哪些列,减少数据传输的量。 20. 考虑事务的...

    MySQL大数据量分页查询方法及其优化

    ### MySQL大数据量分页查询方法及其优化 在处理大规模数据集时,MySQL的分页查询是非常常见的需求之一。为了提高查询效率,减少响应时间和资源消耗,开发者需要掌握多种不同的分页查询方法及其优化技巧。本文将详细...

    MySQL百万级数据量分页查询方法及其优化建议

    在MySQL中,面对百万级数据量的分页查询,如何高效地进行操作并优化查询性能是数据库管理员和开发人员必须关注的问题。以下是一些常用的方法和优化建议: 1. **直接使用LIMIT语句**:这是最基础的分页查询方式,如`...

    mysql limit查询优化分析

    尽管LIMIT在进行数据分页时非常便捷,但在处理大数据量时,LIMIT查询可能会遇到性能瓶颈,特别是在涉及到大偏移量(offset)的查询时。因此,了解如何优化LIMIT查询对于提升数据库性能具有重要意义。 首先,我们来...

    Mysql Limit 分页查询优化详解

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

    mysql分页之limit优化技巧

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

    mysql分页查询优化,大数据量优化

    传统的mysql分页查询 ...特别是上线后数据量积累比较快,必须重视SQL优化,否则影响系统运行和用户使用体验 性能实验 直接用limit start, count分页语句, 也是我程序中用的方法: select * from table lim

    大数据量多线程执行分页查询

    3. **分页查询**:分页是一种优化大数据量查询的技术,它将结果集分割成多个小块(页面),每次只返回用户请求的一部分数据。这样不仅可以减轻服务器压力,还能减少网络传输的负担,提高响应速度。 4. **C#线程**:...

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

    在处理小数据量时,`LIMIT`的性能影响可能不明显,但随着数据量的增长,尤其是当`OFFSET`值非常大时,性能问题就会显现。因为`OFFSET`越大,数据库需要扫描并忽略的行数越多,这会导致查询时间显著增加。 针对大`...

    C#在MySQL大量数据下的高效读取、写入详解

    在C#中与MySQL数据库进行大规模数据交互时,性能优化是关键,特别是在处理千万级别的数据。本文将探讨如何高效地读取和写入大量数据,主要分为三个步骤:解决读取问题、数据处理和数据插入。 ### 第一步:解决读取...

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

    在数据库应用中,MySQL 查询效率对程序的执行速度有很大的影响。有效的处理优化数据库是非常有用的,尤其是大量数据需要处理的时候。以下是十个 SQL 语句优化技巧来提升 MYSQL 查询效率: 1. 优化 MySQL 查询缓存 ...

    高效处理MySQL中的大数据量插入与查询策略

    ### 高效处理MySQL中的大数据量插入与查询策略 在数据驱动的世界中,数据库系统面临着巨大的挑战,尤其是在处理大量数据时。对于像MySQL这样的关系型数据库管理系统而言,大数据量的插入和查询操作可能会成为性能...

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

    通过大量的实验测试,我们发现,适当的数据表索引、SQL 查询语句中的 "limit" 和 "*" 优化、id 限定分页查询和查询缓存技术可以大大提高数据库的响应速度。 结论 本文总结了数据库查询性能优化的重要性和影响...

    mysql limit分页优化详细介绍

    总之,MySQL的`LIMIT`分页在大数据量下需要谨慎使用,尤其是在`OFFSET`较大的情况下。通过合理优化查询语句,结合索引策略,我们可以显著改善分页查询的性能。对于需要深度分页的应用,可以考虑采用文中提到的优化...

    Mysql优化技巧之Limit查询的优化分析

    但是当数据量大的时候,或者查询offset数量比较大的时候,如:limit 100000,20效率往往就不尽人意了。通常的一个办法就是Limit配合order by,如果order by有对用户的索引的话,效率通常是比较不错的。 对于这种...

    关于Mysql分页的两种方法,假分页和limit分页

    假分页适合数据量小、对服务器压力不敏感的场景,而LIMIT分页则更适合数据库分页,特别是配合索引和优化策略,能有效提高查询效率。在实际应用中,应根据具体需求和数据规模选择合适的分页方式,以达到最佳的性能和...

Global site tag (gtag.js) - Google Analytics