Home  >  Article  >  Database  >  mysql limit查询优化方法(offset偏移量)_MySQL

mysql limit查询优化方法(offset偏移量)_MySQL

WBOY
WBOYOriginal
2016-05-30 17:10:241648browse

 

当网站达到一定的规模时,网站的各种优化是必须要进行的。 而网站的优化中,针对数据库各种优化是最重点的了。

 

mysql数据库中的查询语句有关limit语句的优化。

 

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

 

对同一张表在不同的地方取10条数据: 1)offset比较小时  

 

代码示例: select * from user limit 10,10;   这条sql语句多次运行,时间保持在0.0004-0.0005之间。  

 

代码示例: select * from user where uid >=( select uid from user order by uid limit 10,1 ) limit 10;   这条sql语句多次运行,时间保持在0.0005-0.0006之间,主要是0.0006。 结论:偏移offset较小时,直接使用limit较优。这个显然是子查询的原因。

 

2)offset大时  

 

代码示例: select * from user limit 10000,10;   这条sql语句多次运行,时间保持在0.0187左右  

 

代码示例: select * from user where uid >=( select uid from user order by uid limit 10000,1 ) limit 10; 这条sql语句多次运行,时间保持在0.0061左右,只有前者的1/3。可以预计offset越大,后者越优。

 

通过以上对比,得出mysql limit查询语句优化经验: 使用limit语句时,当数据量偏移量较小时可以直接使用limit,当数据量偏移量较大时,可以适当的使用子查询来做相关的性能优化。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn