日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

MySQL explain獲取查詢指令信息原理及實例

瀏覽:31日期:2023-10-15 08:41:49

explain用于獲取查詢執行計劃信息,

一、語法

只需要在select前加上explain即可,如:

mysql> explain select 1;+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+----------------+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+----------------+| 1 | SIMPLE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | No tables used |+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+----------------+

二、explain中的信息

1、id:表示SELECT所屬的行。id越大,則執行順序越高,id相同時,從上到下執行。

2、select_type:顯示對應行是簡單還是復雜查詢

1)SIMPLE:簡單查詢,意味著不包含子查詢和UNION

2)SUBQUERY:表示是個子查詢

3)DERIVED:用來表示包含在FORM子句的子查詢中的SELECT

4)UNION:

3、table:表示訪問哪個表

4、partitions:訪問分區

5、type:關聯類型,就是如何查找表中的行。

1)ALL:全表掃描。為了查找數據必須從頭帶尾的掃描所有的數據(limit關鍵字不會掃描所有數據)

2)index:索引掃描。這個跟全表掃描一樣,只是掃描表時按索引次序而不是行,主要優點是避免了排序,最大缺點是承擔按索引次序讀取整個表的開銷。

3)range:范圍掃描。就是一個有限制的索引掃描,它開始于索引的某一點,不用遍歷全部索引。

4)ref:索引訪問。它返回所有匹配某個單值的行。只有使用非唯一性所有或者唯一性所有的非唯一性前綴時才會發生。

5)eq_ref:使用這個索引查找,最多返回一條記錄,如果主鍵索引和唯一性索引。

6)const,system:當MySQL能對查詢的某一部分進行優化并將其轉換成一個常量時,就會使用這些訪問類型

6、possible_keys:顯示查詢可以用哪些所有

7、key:MySQL決定采用哪個索引來優化這個該表的訪問,如果這個索引沒有出現在possible_keys中,它可能選擇了一個覆蓋索引,如果沒有使用索引,這個值為NULL

8 、key_len:索引的字節數,越短越好。一般來說key_len等于索引列字段類型長度,如int是4字節,bigint是8字節,date是3個字節,datetime是8個字節;如果索引列是字符串類型,則需要考慮他的字符集,utf8每個字符占3個字段,可變類型(varchar)額外需要2個字節;如果索引列可為空,則額外需要1個字段。

9、ref:

10、rows:MySQL估計為了找到所需的行而要讀取的行

11、filtered:返回結果的行數占讀取行數的百分比(估算),值越大越好

12、Extra:顯示不適合其他列但也重要的信息,常見得值有:

1)Using index:表示使用覆蓋索引,以避免訪問表

2)Using where:MySQL服務器將在存儲引擎檢索行后再進行過濾

3)Using temporary:表示MySQL對查詢結果排序時會使用一個臨時表。

三、示例

示例1:

mysql> explain select * from bd_dept;+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-------+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-------+| 1 | SIMPLE | bd_dept | NULL | ALL | NULL | NULL | NULL | NULL | 3 | 100.00 | NULL |+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-------+

可以看出該語句進行了全表掃描,沒有用到索引

示例2:

mysql> explain select * from bd_dept where id=1;+----+-------------+---------+------------+-------+---------------+---------+---------+-------+------+----------+-------+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+----+-------------+---------+------------+-------+---------------+---------+---------+-------+------+----------+-------+| 1 | SIMPLE | bd_dept | NULL | const | PRIMARY | PRIMARY | 4 | const | 1 | 100.00 | NULL |+----+-------------+---------+------------+-------+---------------+---------+---------+-------+------+----------+-------+

該語句用到了主鍵索引,只需掃描一條記錄就可以得到結果,int類型占4個字節,所以ken_len=4。

示例3:

mysql> explain select * from bd_dept where dept_code=’01’;+----+-------------+---------+------------+-------+---------------+-----------+---------+-------+------+----------+-------+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+----+-------------+---------+------------+-------+---------------+-----------+---------+-------+------+----------+-------+| 1 | SIMPLE | bd_dept | NULL | const | dept_code | dept_code | 32 | const | 1 | 100.00 | NULL |+----+-------------+---------+------------+-------+---------------+-----------+---------+-------+------+----------+-------+

dept_code是一個唯一性索引字段,字段類型為varchar(10),不為空,所以索引長度為10*3+2=33。

示例4:

mysql> explain select * from bd_dept where create_date>’2020-04-29’;+----+-------------+---------+------------+-------+---------------+-------------+---------+------+------+----------+-----------------------+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+----+-------------+---------+------------+-------+---------------+-------------+---------+------+------+----------+-----------------------+| 1 | SIMPLE | bd_dept | NULL | range | create_date | create_date | 4 | NULL | 1 | 100.00 | Using index condition |+----+-------------+---------+------------+-------+---------------+-------------+---------+------+------+----------+-----------------------+

create_date是date類型,普通索引字段,可為空,查詢條件為大于,所以關聯類型為range,索引長度為3+1=4。

示例5:

mysql> explain select a.id, a.dept_name, b.dept_name parent_name from bd_dept a inner join bd_dept b on a.id=b.parent_id;+----+-------------+-------+------------+--------+---------------+---------+---------+----------------------+------+----------+-------------+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+----+-------------+-------+------------+--------+---------------+---------+---------+----------------------+------+----------+-------------+| 1 | SIMPLE | b | NULL | ALL | NULL | NULL | NULL | NULL | 3 | 100.00 | Using where || 1 | SIMPLE | a | NULL | eq_ref | PRIMARY | PRIMARY | 4 | zhi_test.b.parent_id | 1 | 100.00 | NULL |+----+-------------+-------+------------+--------+---------------+---------+---------+----------------------+------+----------+-------------+

可以看出MySQL先執行一個全表掃描,再通過主鍵進行關聯

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美99久久| 综合干狼人综合首页| 久久久夜精品| 亚洲v在线看| 宅男噜噜噜66国产日韩在线观看| 久久福利毛片| 模特精品在线| 岛国av在线网站| 午夜精品成人av| 日韩精品看片| 99精品在线| 国产一区二区精品福利地址| 亚洲成人av观看| 尤物在线精品| 国产精品白浆| **爰片久久毛片| 日韩高清中文字幕一区| se01亚洲视频| 日韩一区二区三区高清在线观看| 亚洲3区在线| 99国产精品| 自拍自偷一区二区三区| 日本精品久久| 欧美激情五月| www在线观看黄色| 欧美性感美女一区二区| 婷婷精品视频| 久久福利影视| 欧美亚洲专区| 日韩av在线播放网址| 91精品一区二区三区综合在线爱| 亚洲精品中文字幕乱码| 亚洲一区二区日韩| 国产精品一区二区av日韩在线| 日韩成人免费| 最新日韩av| 97精品资源在线观看| 久久精品人人| 国产一在线精品一区在线观看| 在线精品一区| 国产精品网址| 欧美香蕉视频| 免费人成在线不卡| 久久精品一区二区三区中文字幕| 欧美日韩视频网站| 蜜桃av一区二区在线观看| 欧美精品国产| 久久久久久久久丰满| 蜜臀av国产精品久久久久| 国产日韩一区| 国产精品av久久久久久麻豆网| 涩涩涩久久久成人精品| 牛牛精品成人免费视频| 亚洲午夜在线| 国产精品自在| 伊人久久婷婷| 青青国产91久久久久久| 久久91导航| 欧美日韩午夜电影网| 在线一区视频观看| 亚洲精品美女91| 日韩国产在线| 91精品国产经典在线观看| 欧美sss在线视频| 91精品丝袜国产高跟在线| 神马午夜久久| 欧美日韩亚洲一区三区| 久久国产日韩| 国产精品亚洲片在线播放| 不卡在线一区二区| 久久伊人亚洲| 亚洲综合另类| 日本不良网站在线观看| 日韩高清二区| 精品中文一区| 久久精品九色| 亚洲精品无播放器在线播放| 日韩av首页| 国产精品igao视频网网址不卡日韩| 一区二区自拍| 神马久久午夜| 国产精品一区二区av日韩在线| 欧美日韩国产欧| 日本久久综合| 国产精品亚洲四区在线观看| 久热精品在线| 亚洲1234区| 精品一区不卡| 欧美在线看片| 一区二区不卡| 欧美成人综合| 日韩精品91| 久久a爱视频| 日韩高清一区在线| 久久最新视频| 一本一道久久a久久精品蜜桃| а√天堂8资源中文在线| 欧美天堂一区| 五月激激激综合网色播| 天堂成人国产精品一区| 久久中文亚洲字幕| 美女av一区| 国产亚洲精品美女久久 | 快she精品国产999| 久久精品观看| 一区二区三区四区日本视频| 欧美激情视频一区二区三区在线播放| 亚洲另类av| 免费久久99精品国产自在现线| 91精品国产乱码久久久久久久| 精品国产一区二区三区av片| 日韩av在线播放中文字幕| 视频精品一区二区| 伊人精品视频| 欧美日韩国产探花| 日韩一区二区免费看| 激情五月综合网| 精品一区在线| 欧美福利在线| 蜜臀av免费一区二区三区| 久久影视三级福利片| 亚洲欧美日本视频在线观看| 欧美一区久久| sm捆绑调教国产免费网站在线观看 | 毛片不卡一区二区| 国产精品一线| 四虎在线精品| 国产精品一区亚洲| 免费成人在线视频观看| 精品一区毛片| 亚洲成人免费| 99热免费精品| 三级一区在线视频先锋| 亚洲精品裸体| 日韩高清不卡一区| 国产精品片aa在线观看| 美女视频黄免费的久久| 精品伊人久久| 久久久久观看| 日韩欧美不卡| 激情六月综合| 国产色综合网| 日韩精品一区二区三区免费视频| 天堂va欧美ⅴa亚洲va一国产| 日韩毛片网站| 国产精品欧美一区二区三区不卡| 欧美a在线观看| 国产精品高颜值在线观看| 91精品国产乱码久久久久久久| 亚洲高清影视| 亚洲精品福利| 国产欧美激情| 日本在线啊啊| 欧美亚洲精品在线| 另类国产ts人妖高潮视频| 青草久久视频| 国产在线日韩精品| 图片区亚洲欧美小说区| 亚洲精品福利| 国语精品一区| 欧美精选一区二区三区| 亚洲精品少妇| 久久精品国产99国产精品| 香蕉成人av| 免费不卡在线观看| 国产精品久久| 色婷婷精品视频| 天堂俺去俺来也www久久婷婷| 国产欧美高清| 一区二区三区视频免费观看| 亚洲欧洲专区| 91综合网人人| 亚洲综合日韩| 精品亚洲a∨一区二区三区18| 国产综合视频| 青青伊人久久| 99成人超碰| 日韩va亚洲va欧美va久久| 日韩综合在线| 亚洲毛片在线| 国产传媒在线观看| 蜜乳av另类精品一区二区| 久久这里只有精品一区二区| 亚洲天堂1区| 国产欧美自拍| 国精品一区二区三区| 国产日本精品| 激情久久五月| 美腿丝袜亚洲一区| 国产亚洲福利| 电影91久久久| 蜜臀av在线播放一区二区三区 | 日本精品在线播放| 热三久草你在线| 婷婷视频一区二区三区| 亚洲天堂1区| 日本视频在线一区| 激情五月综合网| 精品免费视频| 日韩欧美中文在线观看|