在做大數據量的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在查詢速度上沒有明顯的效果。