亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

前言

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

type

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

ref

表示等值匹配用的是什么

ref 取值含義相關列
const與key列的索引名等值匹配key
表的列名與該列進行等值匹配
func函數

rows

預計掃描的行數

filtered

是一個百分比數,key1 掃描的數作為分母, common_field 命中的結果為分子

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

表關聯(lián)的時候,這個指標比較重要,針對下表數據

tablerowsfiltered
s1968810
s21100

extra

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

補充: 簡單闡述索引下推

client -> server -> 存儲引擎,下推的意思是把篩選放到存儲引擎,減少回表的數據量

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

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

select common_field, count(*) as amount from s1 group by common_field;
-- 以上語句會被 mysql 補充為
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 查詢優(yōu)化器的具體工作過程

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

相關文章

  • mysql備份的三種方式詳解

    mysql備份的三種方式詳解

    備份的本質就是將數據集另存一個副本,但是原數據會不停的發(fā)生變化,所以利用備份只能回復到數據變化之前的數據。那變化之后的呢?所以制定一個好的備份策略很重要
    2013-09-09
  • mysql分表之后如何平滑上線詳解

    mysql分表之后如何平滑上線詳解

    項目開發(fā)中,我們的數據庫數據越來越大,隨之而來的是單個表中數據太多,以至于查詢書讀變慢,當出現(xiàn)這種情況時,我們可以考慮分表,這篇文章主要給大家介紹了關于mysql分表之后如何平滑上線的相關資料,需要的朋友可以參考下
    2021-10-10
  • windows 64位下mysql 8.0.13 安裝配置方法圖文教程

    windows 64位下mysql 8.0.13 安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了windows 64位下mysql 8.0.13 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • MySQL開啟記錄執(zhí)行過的SQL語句方法

    MySQL開啟記錄執(zhí)行過的SQL語句方法

    這篇文章主要介紹了MySQL開啟記錄執(zhí)行過的SQL語句方法,配置的方法很簡單,本文直接給出配置示例,需要的朋友可以參考下
    2015-07-07
  • MySQL安裝starting?the?server失敗的2種解決辦法(推薦!)

    MySQL安裝starting?the?server失敗的2種解決辦法(推薦!)

    MySQL是一個非常強大的關系型數據庫,但有些初學者在安裝配置的時候,遇到種種的困難,下面這篇文章主要給大家介紹了關于MySQL安裝starting?the?server失敗的2種解決辦法,需要的朋友可以參考下
    2023-04-04
  • MySQL數據庫CRUD、常見函數及union查詢詳解

    MySQL數據庫CRUD、常見函數及union查詢詳解

    在MySQL中CRUD是指對數據庫進行增加(Create)、讀取(Retrieve)、更新(Update)和刪除(Delete)這四種基本操作的縮寫,這篇文章主要給大家介紹了關于MySQL數據庫CRUD、常見函數及union查詢的相關資料,需要的朋友可以參考下
    2024-01-01
  • Mysql IO 內存方面的優(yōu)化

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

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

    MySQL8中的存儲引擎以及文件解析

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

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

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

    MySQL之復雜查詢的實現(xiàn)

    本文主要介紹了MySQL之復雜查詢的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02

最新評論