`
ssxxjjii
  • 浏览: 931741 次
  • 性别: 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查询优化分析

    Limit语法: 复制代码 代码如下:SELECT * FROM table LIMIT [offset,] rows | rows OFFSET ...为了与 PostgreSQL 兼容,MySQL 也支持句法:LIMIT # OFFSET #。 eg: 复制代码 代码如下:mysql&gt; SELECT * FROM table L

    mysql分页之limit优化技巧

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

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

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

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

    MySQL Limit可以分段查询数据库数据,主要应用在分页上。虽然现在写的网站数据都是千条级别,一些小的的优化起的作用不大,但是开发就要做到极致,追求完美性能。下面记录一些limit性能优化方法。 Limit语法: ...

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

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

    MySQL limit分页大偏移量慢的原因及优化方案

    在 MySQL 中通常我们使用 limit 来完成页面上的分页功能,但是当数据量达到一个很大的值之后,越往后翻页,接口的响应速度就越慢。 本文主要讨论 limit 分页大偏移量慢的原因及优化方案,为了模拟这种情况,下面首先...

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

    数据库SQL优化是老生常谈的问题,在面对百万级数据量的分页查询,又有什么好的优化建议呢?下面将列举了一些常用的方法,供大家参考学习! 方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: ...

    mysql limit分页优化详细介绍

    MySQL最常用也最需要优化的就是limit,MySQL的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降,需要的朋友可以参考下

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

    最近由于工作的原因,经常需要对海量数据进行处理,做的数据爬虫相关,动辄千万级别的数据,单表几十个G 都是都是家常便饭。 那么主要的开发语言是C#,数据库使用的是MySQL。下面通过这篇文章我们来一起学习学习吧。

    MySQL对limit查询语句的优化方法

    大家都知道一般limit是用在分页的程序的分页上的,当你的应用数据量够小的时候,也许你感觉不到limit语句的任何问题,但当查询数据量达到一定程度的时候,limit的性能就会急剧下降。这个是通过大量实例得出来的结论...

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

    关于Mysql分页的两种方法,一种假分页,没有效率提高,另一种使用limit,对数据量小的情况下效率会高点

    MYSQL优化详情大全

    分页查询优化:对于大数据量的分页查询,可以使用LIMIT分页,并确保使用适当的索引以提高查询速度。 避免频繁的连接和断开:频繁的连接和断开对数据库性能影响较大,可以使用连接池来管理数据库连接,减少连接开销...

    (mysql面试题)MySQL中的优化技巧,如查询优化、索引优化及代码展示.txt

    通过将查询条件放在WHERE子句中,并使用ORDER BY和LIMIT限制结果集大小,可以减少数据传输量,提高查询效率。 - 接下来,我们展示了如何为id和score字段创建索引,以及如何删除不必要的索引。创建合适的索引可以加快...

    MySQL优化教程之超大分页查询

    但是一旦数据量起来了,其实LIMIT的效率会极其的低,这一篇文章就来讲一下LIMIT子句优化的。 LIMIT优化 很多业务场景都需要用到分页这个功能,基本上都是用LIMIT来实现。 建表并且插入200万条数据: # 新建一张t5表...

    MySQL中的回表查询与索引覆盖:一次百万级别分页查询使用Limit 从90秒到0.6毫秒的优化

    数据库使用的MySQL,有一个日志表,需要进行分页查询,于是很容易就想到了limit [offset偏移量] [count数量]这个查询方式,当我们偏移量比较小时,似乎是没什么问题 SELECT * FROM t_log WHERE type = 1 LIMIT 5, 50 ...

    mysql limit分页优化方法分享

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

    php下MYSQL limit的优化

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

    浅谈MySQL分页Limit的性能问题

    对于小的偏移量,直接使用limit来查询没有什么问题,但随着数据量的增大,越往后分页,limit语句的偏移量就会越大,速度也会明显变慢。 优化思想:避免数据量大时扫描过多的记录 解决:子查询的分页方式或者JOIN...

    php查询mysql大量数据造成内存不足的解决方法

    使用php查询mysql大数据量的时候,程序尚未执行完毕,跳出警告: Fatal error: Allowed memory size of 100663296 bytes exhausted (tried to allocate 103 bytes) 错误提示:php所分配到的100M内存被占用完毕。 ...

Global site tag (gtag.js) - Google Analytics