explian执行计划
生活随笔
收集整理的這篇文章主要介紹了
explian执行计划
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?MySQL為我們提供了 explain 關鍵字來直觀的查看一條SQL的執(zhí)行計劃。
? ? ?explain顯示了MySQL如何使用索引來處理select語句以及連接表,可以幫助選擇更好的索引和寫出更優(yōu)化的查詢語句。
? ? ? 下面我們使用 explain 做一個查詢,如下:
mysql> explain select * from payment; +----+-------------+---------+------------+------+---------------+------+---------+------+-------+----------+-------+ | id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra | +----+-------------+---------+------------+------+---------------+------+---------+------+-------+----------+-------+ | 1 | SIMPLE | payment | NULL | ALL | NULL | NULL | NULL | NULL | 16086 | 100.00 | NULL | +----+-------------+---------+------------+------+---------------+------+---------+------+-------+----------+-------+ 1 row in set, 1 warning (0.01 sec)? ? ?查詢結構中有12列,理解每一列的含義,對理解執(zhí)行計劃至關重要,下面用一個表格的形式進行說明。
| id | SELECT識別符,這是SELECT的查詢序列號。 |
| select_type | SELECT類型,可以為以下任何一種:
|
| table | 輸出的行所引用的表 |
| partitions | 如果查詢是基于分區(qū)表的話,顯示查詢將訪問的分區(qū)。 |
| type | 聯(lián)接類型。下面給出各種聯(lián)接類型,按照從最佳類型到最壞類型進行排序:
一般來說,得保證查詢至少達到range級別,最好能達到ref。 |
| possible_keys | 指出MySQL能使用哪個索引在該表中找到行 |
| key | 顯示MySQL實際決定使用的鍵(索引)。如果沒有選擇索引,鍵是NULL。 |
| key_len | 顯示MySQL決定使用的鍵長度。如果鍵是NULL,則長度為NULL。在不損失精確性的情況下,長度越短越好 |
| ref | 顯示使用哪個列或常數(shù)與key一起從表中選擇行。 |
| rows | 顯示MySQL認為它執(zhí)行查詢時必須檢查的行數(shù)。多行之間的數(shù)據(jù)相乘可以估算要處理的行數(shù)。 |
| filtered | 顯示了通過條件過濾出的行數(shù)的百分比估計值。 |
| Extra | 該列包含MySQL解決查詢的詳細信息
|
? ? 根據(jù)上述表格,可以在執(zhí)行計劃分析上提供很好的幫助。
轉(zhuǎn)載于:https://www.cnblogs.com/xiufengchen/p/10407575.html
總結
以上是生活随笔為你收集整理的explian执行计划的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python测试开发django-1.开
- 下一篇: JavaScript(数据类型、字符串操