mysql查詢using,怎么判斷sql語句沒走索引?
我這里以mysql為例,可視化工具使用的Navicat。
可以在查詢的sql前面增加explain命令,以此可以查看到sql的運行狀態(tài)
explain select * from person where edu ='博士';
下方的控制臺主要關注兩個欄,type和extra
當extra出現(xiàn)Using filesort和Using temproary這兩個時,表示無法使用索引,必須盡快做優(yōu)化。
當type出現(xiàn)index和all時,表示走的是全表掃描沒有走索引,效率低下,這時需要對sql進行調(diào)優(yōu)。
當type出現(xiàn)ref或者index時,表示走的是索引,index是標準不重復的索引,ref表示雖然使用了索引,但是索引列中有重復的值,但是就算有重復值,也只是在重復值的范圍內(nèi)小范圍掃描,不造成重大的性能影響。