主要內容:explain的possible_key、key、key_len、ref、rows入門。

1、possible_key
表示在查詢過程中可能用到的索引。查詢涉及到的字段上如果有索引,則該索引會出現在possible_key列中表示可能用到,但實際上并不一定會用到。例:
mysql> explain select * from t_blog where id = 1; +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------+ | 1 | SIMPLE | t_blog | const | PRIMARY | PRIMARY | 4 | const | 1 | | +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------+ 1 row in set因為id是t_blog的主鍵,查詢時涉及到了該字段,possible_key列中有主鍵字樣。
2、key
表示再查詢過程中實際用到的索引,如果為null則表示沒有用到索引
如上例,key為主鍵,表示查詢過程中用到了主鍵。完整解讀:理論上要用到主鍵,實際上確實用到了主鍵。
存在理論上應該用到某索引,但實際上沒有用到,即索引失效;
如果查詢中使用了覆蓋索引(select子句與符合索引順序和字段完全相同),possible_key為null,key為覆蓋索引。
3、key_len
索引中使用的字節數,越短越好。這個值表示大可能使用長度而不是實際使用長度,例如:
mysql> explain select * from t_blog where title = 'C語言精講'; +----+-------------+--------+------+---------------+---------+---------+-------+------+--------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------+------+---------------+---------+---------+-------+------+--------------------------+ | 1 | SIMPLE | t_blog | ref | index_1 | index_1 | 153 | const | 1 | Using where; Using index | +----+-------------+--------+------+---------------+---------+---------+-------+------+--------------------------+ 1 row in set此時,查詢條件多一個:
mysql> explain select * from t_blog where title = 'C語言精講' and typeId = 2; +----+-------------+--------+------+---------------+---------+---------+-------------+------+--------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------+------+---------------+---------+---------+-------------+------+--------------------------+ | 1 | SIMPLE | t_blog | ref | index_1 | index_1 | 158 | const,const | 1 | Using where; Using index | +----+-------------+--------+------+---------------+---------+---------+-------------+------+--------------------------+ 1 row in set查詢條件變多,精度變高,同時key_len也在變大。
4、ref
顯示索引的哪一列被使用了,可能的話是一個常量。
一共有兩種格式:
1>const:常量,where <索引>='常量'
2><數據庫名>.<表名>.<字段名> :某數據庫中的某表中的某列被使用
5、rows
每張表有多少行被優化器查詢
另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章標題:MySql學習筆記(七):explain-索引的使用情況-創新互聯
URL分享:http://www.yijiale78.com/article40/docdho.html
成都網站建設公司_創新互聯,為您提供品牌網站制作、營銷型網站建設、App設計、軟件開發、做網站、關鍵詞優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯