mysql 执行计划 优化_执行计划
#### 概念
一個sql語句在沒有執行(運行)之前,先計算一下該sql語句需要調用的相關資源,再決定該sql語句是否要最終執行,該行為被稱為“執行計劃”。
#### 作用
主要用于分析sql語句的執行情況(并不執行sql語句)得到sql語句是否使用了索引,使用了哪些索引。

#### 語法
~~~
explain SQL語句;
~~~
結果
~~~
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+
| 1 | SIMPLE | t1 | NULL | ALL | NULL | NULL | NULL | NULL | 1 | 100.00 | NULL |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+
~~~
沒有使用索引和解釋
~~~
id: 1//SELECT識別符。這是SELECT查詢序列號。這個不重要,查詢序號即為sql語句執行的順序.
select_type: SIMPLE//搜索類型,從最好到最差的連接類型為const、eq_reg、ref、range、 indexhe和ALL
table: t1//表名
partitions: NULL
type: ALL
possible_keys: NULL//顯示可能應用在這張表中的索引。如果為null,沒有可能的索引。
key: NULL// 實際使用的索引。如果為NULL,則沒有使用索引。很少的情況下,MYSQL會選擇優化不足的索引。這種情況下,可以在SELECT語句中使用USE INDEX(indexname)來強制使用一個索引或者用
key_len: NULL//使用的索引的長度。在不損失精確性的情況下,長度越短越好.
ref: NULL//顯示索引的哪一列被使用了,如果可能的話,是一個常數.
rows: 1//mysql認為必須檢查的用來返回請求數據的行數.
filtered: 100.00
Extra: NULL
~~~
使用索引的情況
~~~
id: 1
select_type: SIMPLE
table: t1
partitions: NULL
type: const
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: const
rows: 1
filtered: 100.00
Extra: NULL
1 row in set, 1 warning (0.00 sec)
~~~
總結
以上是生活随笔為你收集整理的mysql 执行计划 优化_执行计划的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 净网大师最好用旧版本_云顶之弈手把手教你
- 下一篇: java开发安装mysql_从零开始搭建