国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

explain分析sql效率的方法

2024-07-24 12:52:10
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Explain命令在解決數(shù)據(jù)庫(kù)性能上是第一推薦使用命令,大部分的性能問(wèn)題可以通過(guò)此命令來(lái)簡(jiǎn)單的解決,Explain可以用來(lái)查看SQL語(yǔ)句的執(zhí)行效 果,可以幫助選擇更好的索引和優(yōu)化查詢語(yǔ)句,寫出更好的優(yōu)化語(yǔ)句。

Explain語(yǔ)法:

EXPLAIN tbl_name或:EXPLAIN [EXTENDED] SELECT select_options

前者可以得出一個(gè)表的字段結(jié)構(gòu)等等,后者主要是給出相關(guān)的一些索引信息,而今天要講述的重點(diǎn)是后者。

例:

EXPLAIN SELECT sum(amount) FROM customer a, payment b WHERE1 = 1 AND a.customer_id = b.customer_id AND a.email = 'JANE.BENNETT@sakilacustomer.org';

執(zhí)行結(jié)果:

下面對(duì)各個(gè)屬性進(jìn)行了解:

1、id:這是SELECT的查詢序列號(hào)

2、select_type:select_type就是select的類型,可以有以下幾種:

SIMPLE:簡(jiǎn)單SELECT(不使用UNION或子查詢等)

PRIMARY:最外面的SELECT

UNION:UNION中的第二個(gè)或后面的SELECT語(yǔ)句

DEPENDENT UNION:UNION中的第二個(gè)或后面的SELECT語(yǔ)句,取決于外面的查詢

UNION RESULT:UNION的結(jié)果。

SUBQUERY:子查詢中的第一個(gè)SELECT

DEPENDENT SUBQUERY:子查詢中的第一個(gè)SELECT,取決于外面的查詢

DERIVED:導(dǎo)出表的SELECT(FROM子句的子查詢)

3、table:顯示這一行的數(shù)據(jù)是關(guān)于哪張表的實(shí)際的表名(如select * from customer;) 或表的別名 (如 select * from customer a);

4、type:這列最重要,顯示了連接使用了哪種類別,有無(wú)使用索引,是使用Explain命令分析性能瓶頸的關(guān)鍵項(xiàng)之一。

結(jié)果值從好到壞依次是:

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

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

all: 意味著從表的第1行,往后,逐行做全表掃描.,運(yùn)氣不好掃描到最后一行.

index: 比all性能稍好一點(diǎn),
通俗的說(shuō): all 掃描所有的數(shù)據(jù)行,相當(dāng)于data_all index 掃描所有的索引節(jié)點(diǎn),相當(dāng)于index_all

注:all是沿著磁盤掃描,index是沿著索引掃描

range: 意思是查詢時(shí),能根據(jù)索引做范圍的掃描

explain select * from customer where customer_id > 4;

index_subquery 在子查詢中,基于除唯一索引之外的索引進(jìn)行掃描;

unique_subquery 在子查詢中,基于唯一索引進(jìn)行掃描,類似于EQ_REF;

index_merge 多重范圍掃描。兩表連接的每個(gè)表的連接字段上均有索引存在且索引有序,結(jié)果合并在一起。適用于作集合的并、交操作。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 定日县| 公主岭市| 通州区| 丰镇市| 布尔津县| 昌邑市| 奈曼旗| 深州市| 五莲县| 上林县| 伊宁市| 昌图县| 西乌珠穆沁旗| 文化| 彭阳县| 五华县| 论坛| 宣恩县| 长乐市| 深水埗区| 威宁| 阿拉尔市| 大同市| 佛学| 望奎县| 萍乡市| 安阳县| 五莲县| 陈巴尔虎旗| 中西区| 伊吾县| 南阳市| 本溪市| 甘德县| 寿阳县| 高州市| 丹凤县| 海原县| 四川省| 鸡西市| 岳普湖县|