在做大数据量的web开发的过程中,在程序开发的任何一步中都需要认真的思考能否有更好的办法来提高程序的执行效率。下面分享一个在实际工作中经常用到却很容易被忽视的一个优化MySQL查询效率的方法,合理的使用limit 1。
目前有如下一张表(用户表):
create table member( id int primary key auto_increment, username varchar(40), password varchar(40) );
我们在开发中的登录操作经常这样写:
SELECT * FROM member WHERE `username`='www.phpernote.com';
或者:
SELECT * FROM member WHERE `username`='www.phpernote.com' LIMIT 1;
这两种查询方法都很常见,但你知道他们的实际差别吗?经作者以100万条数据做测试得出结果:
第一条查询语句耗时 0.56 s
第二条使用了 LIMIT 1 后的查询语句耗时 0.28 s
由上可见在数据量很大的情况下,适当的使用LIMIT 1对查询操作的优化效果还是相当明显的。
注意:如果以上表字段中得username被设置为了索引的话,这个时候使用LIMIT 1在查询速度上没有明显的效果。