mysql執行計劃詳細解讀

下文主要給大家帶來MySQL執行計劃詳細解讀,希望mysql執行計劃詳細解讀能夠帶給大家實際用處,這也是我編輯這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名申請、虛擬空間、營銷軟件、網站建設、江孜網站維護、網站推廣。

繼續上次沒有寫完的執行計劃部分
6.possible_keys可能使用到的索引,這個的理解呢, 表示查詢時可能使用的索引。只是可能用到,但是并不一定用到。如果是空的,表明肯定是沒有相關的索引。但是如果有值,也不一定能夠用到。
7.key實際使用的索引。
6,7的話一起來看下面的例子:

mysql執行計劃詳細解讀

mysql> explain select  * from `order` where seller_id = 19;
+----+-------------+-------+------------+------+------------------+------+---------+------+------+----------+-------------+
| id | select_type | table | partitions | type | possible_keys    | key  | key_len | ref  | rows | filtered | Extra       |
+----+-------------+-------+------------+------+------------------+------+---------+------+------+----------+-------------+
|  1 | SIMPLE      | order | NULL       | ALL  | 商家,seller_id   | NULL | NULL    | NULL | 2197 |   100.00 | Using where |
+----+-------------+-------+------------+------+------------------+------+---------+------+------+----------+-------------+
1 row in set, 1 warning (0.00 sec)

mysql> explain select  * from `order` where customer_id = 55029;
+----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-------+
| id | select_type | table | partitions | type | possible_keys | key         | key_len | ref   | rows | filtered | Extra |
+----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-------+
|  1 | SIMPLE      | order | NULL       | ref  | customer_id   | customer_id | 8       | const |   10 |   100.00 | NULL  |
+----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-------+
1 row in set, 1 warning (0.00 sec)

對于第一條sql,這里的possible_keys的結果為有可能走seller_id上的索引,但是實際的key為NULL。之前也說過了,因為只有一個賣家,雖然有索引,但是Innodb選擇了全表掃描,這是基于CBO進行選擇的結果。我們現在刪除一下seller_id上的索引看看是怎么樣的。

mysql> explain select  * from `order` where seller_id = 19;
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------------+
| id | select_type | table | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra       |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------------+
|  1 | SIMPLE      | order | NULL       | ALL  | 商家          | NULL | NULL    | NULL | 2197 |   100.00 | Using where |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------------+
1 row in set, 1 warning (0.00 sec)

可見已經走的是全表掃表了。

第二條sql這里的possible_keys的結果為seller_id,實際上也是走的seller_id,說明索引生效了。

8.key_len使用到索引字段的長度
注意:key_len是通過定義得到的,表示索引字段的最大可能長度,并非實際使用長度。
曾經踩過一個坑,因為創建索引的時候,并沒有主動定義索引長度,結果長度為20的字段索引長度只有4。然后索引不生效導致數據庫雪崩。所以平時最好養成一個定義索引時記得加長度的習慣。

9.ref顯示哪個字段或常數與key一起被使用
如果是使用的常數等值查詢,這里會顯示const
如果是連接查詢,被驅動表的執行計劃這里會顯示驅動表的關聯字段
如果是條件使用了表達式或者函數,或者條件列發生了內部隱式轉換,這里可能顯示為func
如果沒有用索引的話,這里會顯示NULL

10.row掃描行數
這個數表示mysql要遍歷多少數據才能找到,是根據統計得來的,可能并不是十分精準

11.filtered過濾百分比
針對條件的記錄數的百分比所做的一個估算(這里是一個悲觀估算,即最大值),即mysql將要過濾行數的百分比。

12.Extra額外信息
Using index:表示覆蓋索引,只查詢索引值就滿足sql的要求了。

mysql> explain select customer_id from `order` where customer_id = 55029;
+----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-------------+
| id | select_type | table | partitions | type | possible_keys | key         | key_len | ref   | rows | filtered | Extra       |
+----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-------------+
|  1 | SIMPLE      | order | NULL       | ref  | customer_id   | customer_id | 8       | const |   10 |   100.00 | Using index |
+----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-------------+
1 row in set, 1 warning (0.00 sec)

對于以上關于mysql執行計劃詳細解讀,大家是不是覺得非常有幫助。如果需要了解更多內容,請繼續關注我們的行業資訊,相信你會喜歡上這些內容的。

本文題目:mysql執行計劃詳細解讀
新聞來源:http://m.kartarina.com/article28/pphcjp.html

成都網站建設公司_創新互聯,為您提供網站導航做網站搜索引擎優化定制網站網站營銷手機網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

手機網站建設
主站蜘蛛池模板: 无码毛片一区二区三区视频免费播放| 色窝窝无码一区二区三区| 亚洲国产精品无码专区在线观看| 亚洲综合无码AV一区二区| 小SAO货水好多真紧H无码视频| 精品无码免费专区毛片| 熟妇人妻中文av无码| 亚洲精品无码专区| 日韩va中文字幕无码电影| 亚洲AV日韩AV永久无码色欲| 粉嫩高中生无码视频在线观看| 亚洲国产超清无码专区| 国产真人无码作爱免费视频| 亚洲中文无码卡通动漫野外| 一区二区三区人妻无码| 精品无码黑人又粗又大又长 | 久久国产精品无码一区二区三区| 亚洲Av永久无码精品黑人| 国产精品无码成人午夜电影| 无码不卡亚洲成?人片| 亚洲AV无码专区国产乱码不卡| 一夲道无码人妻精品一区二区| 精品人妻中文无码AV在线| 亚洲heyzo专区无码综合| 精品久久亚洲中文无码| 无码人妻精品一区二区三区66| YY111111少妇无码理论片| 无码一区二区三区中文字幕| 国产精品亚洲专区无码WEB| 亚洲国产成人精品无码区二本| 日韩免费无码视频一区二区三区| 国产成人无码AV一区二区在线观看 | 亚洲av无码偷拍在线观看| 亚洲一区无码中文字幕乱码| 亚洲爆乳无码一区二区三区| 无码人妻精品一区二区三区久久 | 久久亚洲AV永久无码精品| 免费无码AV一区二区| 亚洲精品无码日韩国产不卡?V| 无码精品人妻一区| 亚洲乱码无码永久不卡在线|