欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL explain 中列的取值及含義講解

 更新時(shí)間:2023年03月21日 09:22:15   作者:Ch.yang  
這篇文章主要介紹了MySQL explain 中列的取值及含義,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

前言

今天看 《MySQL 是怎樣允許的》和 《高性能MySQL》索引相關(guān)的部分,覺(jué)得有必要整理下 explain 中列的取值及含義。以后工作的時(shí)候翻閱查找更快。

type

type 取值含義
const使用主鍵 或 唯一二級(jí)索引
eq_ref被驅(qū)動(dòng)表,用主鍵 或 唯一二級(jí)索引進(jìn)行 (索引列不為空)
ref普通 的二級(jí)索引進(jìn)行等值匹配 (索引列不為空)
ref_or_null普通 的二級(jí)索引進(jìn)行等值匹配 (索引可以為空)
index_mergeTODO 索引合并相關(guān)的內(nèi)容待探索
unique_subquery查詢(xún)優(yōu)化器把 in 語(yǔ)句優(yōu)化成 exists,使用了主鍵 或 唯一二級(jí)索引進(jìn)行 (索引列不為空)
index_subquery查詢(xún)優(yōu)化器把 in 語(yǔ)句優(yōu)化成 exists,使用了普通索引
range范圍掃描
index1. 使用索引覆蓋, 但是要掃描全部的索引記錄 where條件只命中部分索引
2. 全表掃描, 并且要對(duì)主鍵進(jìn)行排序
all全表掃描

ref

表示等值匹配用的是什么

ref 取值含義相關(guān)列
const與key列的索引名等值匹配key
表的列名與該列進(jìn)行等值匹配
func函數(shù)

rows

預(yù)計(jì)掃描的行數(shù)

filtered

是一個(gè)百分比數(shù),key1 掃描的數(shù)作為分母, common_field 命中的結(jié)果為分子

select * from s1 where key1 > 'z' and common_field = 'a'

表關(guān)聯(lián)的時(shí)候,這個(gè)指標(biāo)比較重要,針對(duì)下表數(shù)據(jù)

tablerowsfiltered
s1968810
s21100

extra

extra 取值含義
Using index使用了索引覆蓋
Using index condition使用了索引下推
Using where在 server 層進(jìn)行了判斷(沒(méi)有索引的列)
Using join buffer (Block Nested Loop)不能有效利用索引時(shí),退而求其次使用緩存
Using filesort使用內(nèi)存或者磁盤(pán)進(jìn)行文件排序
Using temporary使用了臨時(shí)表

補(bǔ)充: 簡(jiǎn)單闡述索引下推

client -> server -> 存儲(chǔ)引擎,下推的意思是把篩選放到存儲(chǔ)引擎,減少回表的數(shù)據(jù)量

形如 where key1 > xxx and key3 like ‘%a’ ,5.6 版本 like 的操作是在server層處理的,5.7.x的版本后可以在存儲(chǔ)引擎層完成過(guò)濾。

補(bǔ)充:group by 優(yōu)化掉額外的排序操作

select common_field, count(*) as amount from s1 group by common_field;
-- 以上語(yǔ)句會(huì)被 mysql 補(bǔ)充為
select common_field, count(*) as amount from s1 group by common_field order by common_field;
-- 如果要省略文件排序, 則顯式聲明為 order by null
select common_field, count(*) as amount from s1 group by common_field order by null;

后記

TODO: 用 otpimzer trace 查詢(xún)優(yōu)化器的具體工作過(guò)程

到此這篇關(guān)于MySQL explain 中列的取值及含義的文章就介紹到這了,更多相關(guān)MySQL explain列的取值及含義內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql IO 內(nèi)存方面的優(yōu)化

    Mysql IO 內(nèi)存方面的優(yōu)化

    這篇文章主要介紹了Mysql IO 內(nèi)存方面的優(yōu)化 的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • MySQL8中的存儲(chǔ)引擎以及文件解析

    MySQL8中的存儲(chǔ)引擎以及文件解析

    這篇文章主要介紹了MySQL8中的存儲(chǔ)引擎以及文件使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 利用mysql的inet_aton()和inet_ntoa()函數(shù)存儲(chǔ)IP地址的方法分享

    利用mysql的inet_aton()和inet_ntoa()函數(shù)存儲(chǔ)IP地址的方法分享

    當(dāng)前很多應(yīng)用都適用字符串char(15)來(lái)存儲(chǔ)IP地址(占用16個(gè)字節(jié)),利用inet_aton()和inet_ntoa()函數(shù),來(lái)存儲(chǔ)IP地址效率很高,適用unsigned int 就可以滿足需求,不需要使用bigint,只需要4個(gè)字節(jié),節(jié)省存儲(chǔ)空間,同時(shí)效率也高很多
    2012-03-03
  • MySQL之復(fù)雜查詢(xún)的實(shí)現(xiàn)

    MySQL之復(fù)雜查詢(xún)的實(shí)現(xiàn)

    本文主要介紹了MySQL之復(fù)雜查詢(xún)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 最新評(píng)論