mysql limit查询优化

原创 2012年03月29日 13:33:22
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

Limit语法: SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT子句可以被用于强制 SELE...

mysql limit查询优化

mysql limit查询优化(数据量大的时候很优) mysql limit查询优化[转载],由于limit经常用到,却没有注意,因为平时做的项目都比较小,所以也没有考虑去怎么优化,今天看了一篇...
  • vempire
  • vempire
  • 2011年08月29日 14:00
  • 255

MySQL查询优化:LIMIT 1避免全表扫描

在某些情况下,如果明知道查询结果只有一个,SQL语句中使用LIMIT 1会提高查询效率。 例如下面的用户表(主键id,邮箱,密码): create table t_user( id in...

mysql limit分页查询优化写法

在mysql中进行分页查询时,一般会使用limit查询,而且通常查询中都会使用orderby排 序。但是在表数据量比较大的时候,例如查询语句片段limit 10000, 20,数据库会读取10020条...

MYSQL查询优化:Limit

1.LIMIT n 等价于 LIMIT 0,n 偏移offset较小的时候,直接使用limit较优。 2、offset大的时候。 select * from yanxue8_visit limit...

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

http://www.cnblogs.com/fjytzh/archive/2010/04/02/1702886.html mysql limit查询优化[转载],由于limit经常...

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

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

MySQL 查询优化: LIMIT 1 避免全表扫描提高查询效率

原文:http://www.jb51.net/article/35774.htm 在某些情况下,如果明知道查询结果只有一个,SQL语句中使用LIMIT 1会提高查询效率。 例如下面的用户表(...

高性能MySql设计之查询优化(limit优化)

1        介绍 1.1     处理流程 当MYSQL 收到一条查询请求时,会首先通过关键字对SQL语句进行解析,生成一颗“解析树”,然后预处理器会校验“解析树”是否合法(主要校验...

MySql查询优化 百万级记录查询优化 limit分页查询

效率分析关键词:explain + SQL语句 一,最常见MYSQL最基本的分页方式limit: select * from `table` order by id desc limit 0, ...
  • xycit
  • xycit
  • 2016年03月10日 14:38
  • 1762
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql limit查询优化
举报原因:
原因补充:

(最多只允许输入30个字)