数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

mysql的limit经典用法及优化


发布日期:2019年10月16日
 
mysql的limit经典用法及优化

用法一

SELECT `keyword_rank`* FROM `keyword_rank` WHERE (advertiserid=) LIMIT OFFSET ;

比如这个SQL limit后面跟的是条数据offset后面是从第条开始读取

用法二

SELECT `keyword_rank`* FROM `keyword_rank` WHERE (advertiserid=) LIMIT ;

而这个SQLlimit后面是从第条开始读读取条信息

这两个千万别搞混哦

用法三

select * from tablename <条件语句> limit

从第条后开始最后一条的记录

用法四

select * from tablename <条件语句> limit

相当于limit 查询结果取前条数据用法五

mysql低版本不支持limit offset

limit offset 在mysql 以上的版本中都可以正常运行在旧版本的mysql 中无效

limit m offset n 等价于 limit mn

limit 的优化

mysql的limit给分页带来了极大的方便但数据量一大的时候limit的性能就急剧下降

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

同样是取条数据

select * from yanxue_visit limit

select * from yanxue_visit limit

就不是一个数量级别的

网上也很多关于limit的五条优化准则都是翻译自mysql手册虽然正确但不实用今天发现一篇文章写了些关于limit优化的很不错

文中不是直接使用limit而是首先获取到offset的id然后直接使用limit size来获取数据根据他的数据明显要好于直接使用limit这里我具体使用数据分两种情况进行测试(测试环境win+p双核 (GHZ) +G内存 mysql

offset比较小的时候

select * from yanxue_visit limit

多次运行时间保持在之间

Select * From yanxue_visit Where vid >=(

Select vid From yanxue_visit Order By vid limit

) limit

多次运行时间保持在之间主要是

结论偏移offset较小的时候直接使用limit较优这个显然是子查询的原因

offset大的时候

select * from yanxue_visit limit

多次运行时间保持在左右

Select * From yanxue_visit Where vid >=(

Select vid From yanxue_visit Order By vid limit

) limit

多次运行时间保持在左右只有前者的/可以预计offset越大后者越优

以后要注意改正自己的limit语句优化一下mysql了

上一篇:用MySQL创建数据库和数据库表

下一篇:MYSQL死锁相关查找