日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 执行计划extra_mysql执行计划explain type和extra

發布時間:2023/12/10 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 执行计划extra_mysql执行计划explain type和extra 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mysql執行計劃,搞定type和extra就能優化大部分sql了。type為主,extra為輔。

type:

system表只有一行,MyISAM引擎。

const常量連接,表最多只有一行匹配,通用用于主鍵或者唯一索引比較時

eq_ref每次與之前的表合并行都只在該表讀取一行,這是除了system,const之外最好的一種,特點是使用=,而且索引的所有部分都參與join且索引是主鍵或非空唯一鍵的索引

ref如果每次只匹配少數行,那就是比較好的一種,使用=或<=>,可以是左覆蓋索引或非主鍵或非唯一鍵

fulltext全文搜索

ref_or_null與ref類似,但包括NULL

index_merge表示出現了索引合并優化(包括交集,并集以及交集之間的并集),但不包括跨表和全文索引。這個比較復雜,目前的理解是合并單表的范圍索引掃描(如果成本估算比普通的range要更優的話)

unique_subquery在in子查詢中,就是value in (select…)把形如select unique_key_column的子查詢替換。PS:所以不一定in子句中使用子查詢就是低效的!

index_subquery同上,但把形如”select non_unique_key_column“的子查詢替換

range常數值的范圍

index索引樹掃描。a.當查詢是索引覆蓋的,即所有數據均可從索引樹獲取的時候(Extra中有Using Index);b.以索引順序從索引中查找數據行的全表掃描(無 Using Index);c.如果Extra中Using Index與Using Where同時出現的話,則是利用索引查找鍵值的意思;d.如單獨出現,則是用讀索引來代替讀行,但不用于查找

all全表掃描(full table scan)

extra:

Using index索引最優

Using index?condition命中索引,但是查詢的列不在索引樹中,導致需要查找實際行記錄,看情況優化

Using index?where只有where,可能沒走索引,結合type看情況優化

Using indexfilesort排序優化order by,加索引,需要優化

Using temporary臨時表,需要優化

Using join buffer (Block Nested Loop)兩個關聯表join,關聯字段均未建立索引,需要優化

null為空時需要去type找原因

總結

以上是生活随笔為你收集整理的mysql 执行计划extra_mysql执行计划explain type和extra的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。