mysql查看sql的執行計划(是否使用索引等)


查看sql的執行計划(是否使用索引等)

方法:使用EXPLAIN關鍵字

一、例子:

EXPLAIN SELECT * FROM tb_blog t WHERE t.`blog_id` = 3

二、表的索引:

 

三、查詢結果

 

四、說明:

table:顯示這一行的數據是關於哪張表的

type:這是重要的列,顯示連接使用了何種類型。從最好到最差的連接類型為const、eq_reg、ref、range、indexhe和ALL

possible_keys:顯示可能應用在這張表中的索引。如果為空,沒有可能的索引。可以為相關的域從WHERE語句中選擇一個合適的語句

key: 實際使用的索引。如果為NULL,則沒有使用索引。很少的情況下,MYSQL會選擇優化不足的索引。這種情況下,可以在SELECT語句中使用USE INDEX(indexname)來強制使用一個索引或者用IGNORE INDEX(indexname)來強制MYSQL忽略索引

key_len:使用的索引的長度。在不損失精確性的情況下,長度越短越好

ref:顯示索引的哪一列被使用了,如果可能的話,是一個常數

rows:MYSQL認為必須檢查的用來返回請求數據的行數

Extra:關於MYSQL如何解析查詢的額外信息。將在表4.3中討論,但這里可以看到的壞的例子是Using temporary和Using filesort,意思MYSQL根本不能使用索引,結果是檢索會很慢

五、補充

查看執行計划:EXPLAIN

查看索引:show index from 數據庫名.表名 where column_name like '列名'

建立普通索引:CREATE INDEX index_name(索引名稱) ON 表名 (字段名) ;

刪除索引:drop index index_name(索引名) on 表名 ;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM