小汪:小猿同志,現(xiàn)在需要在后臺加個功能,這個功能要支持根據(jù)用戶 id 能查到他所有的朋友姓名和地址,并且要求朋友的姓名是按照字典排序的。
小猿:好的,這個功能簡單,我馬上就上線。
于是小猿書寫了這樣的sql:
select friend_name,friend_addr from user where user_id=? order by name 在電光石火的瞬間,小猿趾高氣昂的上線了,這一切都很順利,直到有一天有個運營同學(xué)導(dǎo)致了這樣的查詢:
select friend_name,friend_addr from user where user_id=10086 order by name 然而,這個查詢竟然比平時慢很多,數(shù)據(jù)庫報了慢查詢,小猿此時慌的一b:這是怎么回事?user_id 明明有索引啊,而且機(jī)智地我還只用了 select friend_name,friend_addr,并沒有用 select *呀。小猿此時不停地安慰自己,要淡定要淡定,然后突然想到有個explain命令,用explain來查看下那條sql的執(zhí)行計劃吧,當(dāng)小猿用了explain之后,發(fā)現(xiàn)extra字段里面有個看起來很危險的字眼:using filesort。