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查询语句的5个方法

这篇文章主要介绍了mysql优化limit查询语句的5个方法,它们分别是子查询优化法、倒排表优化法、反向查找优化法、limit限制优化法和只查索引法,需要的朋友可以参考下 mysql的分页比较简单,...
  • YABIGNSHI
  • YABIGNSHI
  • 2016年08月04日 10:49
  • 1361

MySQL单表百万数据记录分页性能优化 limit优化

背景: 自己的一个网站,由于单表的数据记录高达了一百万条,造成数据访问很慢,Google分析的后台经常报告超时,尤其是页码大的页面更是慢的不行。 测试环境: 先让我们熟悉下基本的sq...
  • u012889638
  • u012889638
  • 2016年01月09日 17:02
  • 1656

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

http://www.cnblogs.com/fjytzh/archive/2010/04/02/1702886.html mysql limit查询优化[转载],由于limit经常...
  • leonpengweicn
  • leonpengweicn
  • 2015年06月17日 10:07
  • 3559

Mysql limit 分页机制和优化实例

Mysql limit 常用于分页等操作,对于页面展示来说,一旦数据量上升,分页查询的性能问题就会非常需要关注,下面给出几种 limit性能分析和实例。...
  • mr253727942
  • mr253727942
  • 2016年03月05日 18:02
  • 3396

MySQL SQL优化案例:LIMIT M,N大偏移量分页

原查询语句: SELECT loan_document_id, contract_id, applicant_contract_id, buyer_id, buyer_name,...
  • zyz511919766
  • zyz511919766
  • 2016年01月06日 16:36
  • 3732

mysql查询时,offset过大影响性能的原因与优化方法

mysql查询使用select命令,配合limit,offset参数可以读取指定范围的记录。本文将介绍mysql查询时,offset过大影响性能的原因及优化方法。...
  • fdipzone
  • fdipzone
  • 2017年05月28日 17:13
  • 19253

MySQL5.6中limit的工作机制和order by limit优化原理

MySQL5.6中Limit的工作机制 如果你仅需要在一个结果集中返回特定的几行,通常是使用limit,而不是取回整个结果集再舍去不需要的数据,MySQL通常按照如下的方式优化一个包含limit r...
  • cug_jiang126com
  • cug_jiang126com
  • 2014年12月29日 22:25
  • 3847

【MySQL】基于MySQL的SQL优化(四)——对group by以及limit的优化

group by:通过下面一条 语句来了解有关group by的优化。SELECT a.first_name,a.last_name,COUNT(*) FROM film_actor fa INNER...
  • tanglei6636
  • tanglei6636
  • 2016年10月19日 17:23
  • 400

如何优化Mysql千万级快速分页,limit优化快速分页,MySQL处理千万级数据查询的优化方案!(zz)

标签: 优化mysql数据库测试框架sqlserver 2011-05-06 18:47 4104人阅读 评论(0) 收藏 举报  分类: MySQL(8)  My...
  • qq_36276335
  • qq_36276335
  • 2017年06月27日 22:06
  • 1169

MYSQL查询优化:Limit

Limit语法: SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT子句可以被用于强制 SE...
  • mengtianyalll
  • mengtianyalll
  • 2015年09月18日 17:58
  • 224
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql limit查询优化
举报原因:
原因补充:

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