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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

MySQL EXPLAIN語(yǔ)句的使用示例

瀏覽:33日期:2023-10-04 15:59:50

在MySQL優(yōu)化的環(huán)節(jié)上,我們首先需要知道的就是我們當(dāng)前的這句SQL語(yǔ)句在實(shí)際的數(shù)據(jù)庫(kù)中究竟是怎么執(zhí)行的,才能談要如何優(yōu)化它。而在MySQL中,就給我們提供了模擬語(yǔ)句執(zhí)行的一個(gè)非常好用的關(guān)鍵字:EXPLAIN。EXPLAIN可以用來(lái)查看SQL語(yǔ)句的執(zhí)行效果,可以幫助選擇更好的索引和優(yōu)化查詢語(yǔ)句,寫出更好的優(yōu)化語(yǔ)句。因此今天我們就來(lái)講一講這個(gè)關(guān)鍵字的一些基礎(chǔ)的用法與應(yīng)用。

一、使用方法

EXPLAIN的使用方法非常簡(jiǎn)單:

mysql> EXPLAIN SELECT * FROM user;

簡(jiǎn)單來(lái)說(shuō),就是在原有的SQL語(yǔ)句前面加上EXPLAIN關(guān)鍵字,或者說(shuō)是在EXPLAIN關(guān)鍵字后跟這你要檢查的SQL語(yǔ)句。

二、輸出結(jié)果

EXPLAIN語(yǔ)句的輸出結(jié)果才是我們想要的數(shù)據(jù),也是我們分析的重點(diǎn)。我們先來(lái)看看上面的語(yǔ)句所給到的對(duì)應(yīng)的結(jié)果的形式:

+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+| 1 | SIMPLE | user | NULL | ALL | NULL | NULL | NULL | NULL | 3 | 100.00 | NULL |+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+

EXPLAIN語(yǔ)句給到我們的數(shù)據(jù)總共有10列,接下來(lái)我們看一下一些在性能優(yōu)化上有比較重要作用的數(shù)據(jù)列所代表的意思。

1.id

這個(gè)是select查詢的序列號(hào)。

2.select_type

當(dāng)我們的SQL語(yǔ)句是非select語(yǔ)句的時(shí)候(即delete,update...),這個(gè)字段的值就是對(duì)應(yīng)的操作類型(delete,update...)。

mysql> EXPLAIN INSERT INTO user VAULES(2,’ahong’,’31’);

此時(shí)的輸出select_type就是我們對(duì)應(yīng)的INSERT:

+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+| 1 | INSERT | user | NULL | ALL | NULL | NULL | NULL | NULL | NULL | NULL | NULL |+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+

而當(dāng)SQL語(yǔ)句時(shí)select語(yǔ)句的時(shí)候,他就是對(duì)應(yīng)的一些詳細(xì)的select的類型,可以有如下幾種:

SIMPLE:簡(jiǎn)單SELECT(不使用UNION或子查詢等)PRIMARY:最外面的SELECTUNION:UNION中的第二個(gè)或后面的SELECT語(yǔ)句DEPENDENT UNION:UNION中的第二個(gè)或后面的SELECT語(yǔ)句,取決于外面的查詢UNION RESULT:UNION的結(jié)果。SUBQUERY:子查詢中的第一個(gè)SELECTDEPENDENT SUBQUERY:子查詢中的第一個(gè)SELECT,取決于外面的查詢DERIVED:導(dǎo)出表的SELECT(FROM子句的子查詢)

下面就是一個(gè)最簡(jiǎn)單的SIMPLE查詢的例子:

mysql> EXPLAIN SELECT * FROM user;

+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+| 1 | SIMPLE | user | NULL | ALL | NULL | NULL | NULL | NULL | 3 | 100.00 | NULL |+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+3.table

顯示這一步操作所訪問的數(shù)據(jù)是關(guān)于哪一張表的。

4.partitions

顯示表所使用的分區(qū),如果要統(tǒng)計(jì)十年公司訂單的金額,可以把數(shù)據(jù)分為十個(gè)區(qū),每一年代表一個(gè)區(qū)。這樣可以大大的提高查詢效率。

5.type

這是最重要的一列。顯示了連接使用了哪種類別,有無(wú)使用索引。是分析查詢性能的關(guān)鍵。結(jié)果性能從優(yōu)到差分別有以下的情況:

system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL

而這幾種情況所代表的意義如下:

system、const: 可以將查詢的變量轉(zhuǎn)為常量. 如id=1; id為 主鍵或唯一鍵. eq_ref: 訪問索引,返回某單一行的數(shù)據(jù).(通常在聯(lián)接時(shí)出現(xiàn),查詢使用的索引為主鍵或惟一鍵) ref: 訪問索引,返回某個(gè)值的數(shù)據(jù).(可以返回多行) 通常使用=時(shí)發(fā)生 range: 這個(gè)連接類型使用索引返回一個(gè)范圍中的行,比如使用>或<查找東西,并且該字段上建有索引時(shí)發(fā)生的情況(注:不一定好于index) index: 以索引的順序進(jìn)行全表掃描,優(yōu)點(diǎn)是不用排序,缺點(diǎn)是還要全表掃描 ALL: 全表掃描,應(yīng)該盡量避免_

一般來(lái)說(shuō),得保證查詢至少達(dá)到range級(jí)別,最好能達(dá)到ref,否則就可能會(huì)出現(xiàn)性能問題。

6.possible_key

顯示查詢語(yǔ)句有可能會(huì)使用到的索引列。取值可能為一個(gè),多個(gè)或者null。

7.key

key列顯示的是該查詢語(yǔ)句實(shí)際使用的索引列。如為null,則表示沒有使用索引。展示一下possible_key和key的實(shí)際效果:下面是一個(gè)在age列上建立索引的數(shù)據(jù)表,我們進(jìn)行以下的查詢

mysql> explain select * from user where age = 1;

會(huì)得到以下的結(jié)果:

+----+-------------+-------+------------+------+---------------+------+---------+-------+------+----------+-------+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+----+-------------+-------+------------+------+---------------+------+---------+-------+------+----------+-------+| 1 | SIMPLE | user | NULL | ref | age | age | 5 | const | 1 | 100.00 | NULL |+----+-------------+-------+------------+------+---------------+------+---------+-------+------+----------+-------+8.key_len

顯示的是當(dāng)前的查詢語(yǔ)句所使用的索引的長(zhǎng)度。在不損失精確性的情況下,長(zhǎng)度越短越好.

9.ref

引用到的上一個(gè)表的列。

10.rows

根據(jù)表的情況和查詢語(yǔ)句的情況,MySQL會(huì)估算出返回最終結(jié)果所必須檢查的行的數(shù)量。該列的值越大查詢效率越差。

11.filtered

一個(gè)百分比的值,和rows 列的值一起使用,可以估計(jì)出查詢執(zhí)行計(jì)劃(QEP)中的前一個(gè)表的結(jié)果集,從而確定join操作的循環(huán)次數(shù)。小表驅(qū)動(dòng)大表,減輕連接的次數(shù)。

12.extra

關(guān)于MySQL如何解析查詢的額外信息,主要有以下幾種:

Extra中包含的值:

using index: 只用到索引,可以避免訪問表,性能很高。 using where: 使用到where來(lái)過濾數(shù)據(jù), 不是所有的where clause都要顯示using where. 如以=方式訪問索引。 using tmporary: 用到臨時(shí)表去處理當(dāng)前的查詢。 using filesort: 用到額外的排序,此時(shí)mysql會(huì)根據(jù)聯(lián)接類型瀏覽所有符合條件的記錄,并保存排序關(guān)鍵字和行指針,然后排序關(guān)鍵字并按順序檢索行。(當(dāng)使用order by v1,而沒用到索引時(shí),就會(huì)使用額外的排序)。 range checked for eache record(index map:N): 沒有好的索引可以使用。 Using index for group-by:__表明可以在索引中找到分組所需的所有數(shù)據(jù),不需要查詢實(shí)際的表。explain select user_id from t_order group by user_id;_

以上就是MySQL EXPLAIN語(yǔ)句的使用示例的詳細(xì)內(nèi)容,更多關(guān)于MySQL EXPLAIN語(yǔ)句的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: MySQL 數(shù)據(jù)庫(kù)
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久成人一区| 综合国产精品| 清纯唯美亚洲综合一区| 日本成人手机在线| 久久精品97| 精品美女视频| 91精品国产成人观看| 国产精品美女| 青青国产91久久久久久| 国产一区丝袜| 日本国产精品| 免费观看日韩电影| 国产日韩欧美在线播放不卡| 日日摸夜夜添夜夜添国产精品| 欧美日韩一区二区国产| 久久精品伊人| 1000部精品久久久久久久久| 丝袜亚洲精品中文字幕一区| 日本亚洲最大的色成网站www | 美女尤物久久精品| 欧美日韩1区2区3区| 国产一区二区精品久| 韩国精品主播一区二区在线观看| 在线成人直播| 国产精品亚洲欧美日韩一区在线| 伊人久久视频| 国产精品日本欧美一区二区三区| 日本视频一区二区| 日韩中文影院| 日本精品一区二区三区在线观看视频| 精品久久不卡| 免费视频一区二区| 成人精品高清在线视频| 久久性天堂网| 成人一二三区| 日韩高清不卡在线| 欧美一区二区三区高清视频 | 日本aⅴ亚洲精品中文乱码| 亚洲黄色免费看| 无码日韩精品一区二区免费| 日韩精品免费一区二区三区| 欧美另类中文字幕| 婷婷综合五月| 成人污污视频| 日韩高清一区二区| 99国产成+人+综合+亚洲欧美| 麻豆久久一区| 日韩三区四区| 五月天久久777| 日本久久黄色| 国产欧美一级| 亚洲一区欧美二区| 黑人精品一区| 美女视频网站久久| 日本天堂一区| 亚洲欧美日韩国产一区| 日韩在线中文| 麻豆中文一区二区| 日韩专区视频网站| 欧美日韩少妇| 亚洲成人精品| 成人亚洲一区二区| 国产精区一区二区| 日本亚州欧洲精品不卡| 欧美+亚洲+精品+三区| av免费不卡国产观看| 婷婷五月色综合香五月| 欧洲激情综合| 神马午夜久久| 在线手机中文字幕| 美女久久久久久| 国产日韩在线观看视频| 亚洲香蕉久久| 老司机精品久久| 激情综合自拍| 999国产精品视频| 丝袜美腿诱惑一区二区三区| 精品国产一级| 欧美国产中文高清| 国产亚洲久久| 国产精品白丝一区二区三区| 日韩**一区毛片| 亚洲丝袜美腿一区| 亚洲精品影视| 日韩在线黄色| 欧美日韩亚洲三区| 国产乱码精品一区二区三区四区 | 在线视频亚洲欧美中文| 99国产精品久久久久久久成人热| 国产综合视频| 国产精品88久久久久久| 91久久久精品国产| 国产亚洲在线观看| 免费在线观看不卡| 蜜桃成人av| 91久久久精品国产| 伊人影院久久| 中文字幕乱码亚洲无线精品一区| 羞羞答答国产精品www一本 | 午夜在线一区| 一二三区精品| 日本在线视频一区二区| 亚洲精品在线二区| 久久精品99国产精品日本| 麻豆中文一区二区| 毛片在线网站| 色爱av综合网| 在线精品小视频| 亚洲精品电影| 亚洲一区有码| 国产精品qvod| 黑森林国产精品av| 亚洲精品成人| 日本中文字幕一区二区| 麻豆一区在线| 国产在线日韩| 日韩成人午夜精品| 国产va免费精品观看精品视频| 国产99久久| 亚洲人成精品久久久| 国产欧美激情| 欧产日产国产精品视频| 蜜桃av一区| 日韩av中文在线观看| 精品视频91| 国产高清一区| 国产欧美一区二区精品久久久 | 日韩影院在线观看| 欧美日韩亚洲一区二区三区在线| 国产一区调教| 亚洲欧美久久久| 国产精品国产三级在线观看| 人人香蕉久久| 视频一区欧美日韩| 国产精品a级| 黄页网站一区| 精品一区二区三区四区五区| 狠狠色狠狠色综合日日tαg| 国产精品任我爽爆在线播放| 国产真实久久| 国产精品调教视频| 国产一区观看| 久久a爱视频| 视频在线观看一区| 中文字幕在线高清| 91嫩草精品| 黑丝一区二区| 国产一区二区三区国产精品| 9色精品在线| 久久影视三级福利片| 久久99伊人| 久久久男人天堂| 日韩va亚洲va欧美va久久| 成人羞羞在线观看网站| 欧美一级一区| 亚洲少妇在线| 色黄视频在线观看| 欧美日韩1区| 亚洲一区观看| 91精品国产调教在线观看| 国产乱码精品一区二区三区四区| 国产亚洲在线| 91精品国产福利在线观看麻豆| 日韩二区三区在线观看| 国产一区观看| 国产不卡人人| 欧美成人aaa| 日韩精品中文字幕吗一区二区| 91成人精品视频| 岛国av在线播放| 国产精品国码视频| 日韩精品一区二区三区av | 99久久亚洲精品| 国产中文字幕一区二区三区| 欧美日韩精品一区二区三区视频| 99热精品在线| 国产精品yjizz视频网| 国产日韩欧美在线播放不卡| 蜜桃视频免费观看一区| 国产精品99一区二区| 水蜜桃精品av一区二区| 国产精品久久久一区二区| 免费在线观看精品| 免费视频亚洲| 99精品视频在线观看免费播放| 精品视频网站| 欧美激情久久久久久久久久久| 日韩高清不卡一区| 日本电影久久久| 亚洲精品看片| 亚洲精品美女| 亚洲免费激情| 亚洲精品91| 欧美天堂亚洲电影院在线观看| 亚洲国产专区校园欧美| 亚洲国产专区校园欧美| 婷婷六月综合| 亚洲欧美日韩国产一区| 视频一区中文字幕| 在线精品视频一区|