国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Mysql性能優化之索引下推

瀏覽:2日期:2023-10-05 08:11:14

索引下推(index condition pushdown )簡稱ICP,在Mysql5.6的版本上推出,用于優化查詢。

在不使用ICP的情況下,在使用非主鍵索引(又叫普通索引或者二級索引)進行查詢時,存儲引擎通過索引檢索到數據,然后返回給MySQL服務器,服務器然后判斷數據是否符合條件 。

在使用ICP的情況下,如果存在某些被索引的列的判斷條件時,MySQL服務器將這一部分判斷條件傳遞給存儲引擎,然后由存儲引擎通過判斷索引是否符合MySQL服務器傳遞的條件,只有當索引符合條件時才會將數據檢索出來返回給MySQL服務器 。

索引條件下推優化可以減少存儲引擎查詢基礎表的次數,也可以減少MySQL服務器從存儲引擎接收數據的次數。

開擼

在開始之前先先準備一張用戶表(user),其中主要幾個字段有:id、name、age、address。建立聯合索引(name,age)。

假設有一個需求,要求匹配姓名第一個為陳的所有用戶,sql語句如下:

SELECT * from user where name like ’陳%’

根據 '最佳左前綴' 的原則,這里使用了聯合索引(name,age)進行了查詢,性能要比全表掃描肯定要高。

問題來了,如果有其他的條件呢?假設又有一個需求,要求匹配姓名第一個字為陳,年齡為20歲的用戶,此時的sql語句如下:

SELECT * from user where name like ’陳%’ and age=20

這條sql語句應該如何執行呢?下面對Mysql5.6之前版本和之后版本進行分析。

Mysql5.6之前的版本

5.6之前的版本是沒有索引下推這個優化的,因此執行的過程如下圖:

Mysql性能優化之索引下推

會忽略age這個字段,直接通過name進行查詢,在(name,age)這課樹上查找到了兩個結果,id分別為2,1,然后拿著取到的id值一次次的回表查詢,因此這個過程需要回表兩次。

Mysql5.6及之后版本

5.6版本添加了索引下推這個優化,執行的過程如下圖:

Mysql性能優化之索引下推

InnoDB并沒有忽略age這個字段,而是在索引內部就判斷了age是否等于20,對于不等于20的記錄直接跳過,因此在(name,age)這棵索引樹中只匹配到了一個記錄,此時拿著這個id去主鍵索引樹中回表查詢全部數據,這個過程只需要回表一次

實踐

當然上述的分析只是原理上的,我們可以實戰分析一下,因此陳某裝了Mysql5.6版本的Mysql,解析了上述的語句,如下圖:

Mysql性能優化之索引下推

根據explain解析結果可以看出Extra的值為Using index condition,表示已經使用了索引下推。

總結

索引下推在非主鍵索引上的優化,可以有效減少回表的次數,大大提升了查詢的效率。

關閉索引下推可以使用如下命令,配置文件的修改不再講述了,畢竟這么優秀的功能干嘛關閉呢:

set optimizer_switch=’index_condition_pushdown=off’;

到此這篇關于Mysql性能優化之索引下推的文章就介紹到這了,更多相關Mysql 索引下推內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 成人免费视频一区 | 国产精品成人免费综合 | 欧美性色黄大片一级毛片视频 | 免费国产成人高清视频网站 | 国产91在线 | 亚洲 | 午夜免费69性视频爽爽爽 | 久久国产精品视频一区 | 韩国福利影视一区二区三区 | 久久99精品久久久久久三级 | 99久久精品费精品国产一区二 | 伊人久热这里只有精品视频99 | 亚洲综合色一区二区三区小说 | 国产一区二区三区四区在线 | 先锋影音xfyy5566男人资源 | 精品国产品欧美日产在线 | 精品久久久久不卡无毒 | 欧美成视频无需播放器 | 成人国产网站 | 国产精品亚洲精品一区二区三区 | 久久久欧美综合久久久久 | 久久久久久久久久久9精品视频 | 美女张开腿让男人桶的动态图 | 国产麻豆入在线观看 | 97精品国产高清在线看入口 | 成人毛片网站 | 最近免费手机中文字幕3 | 欧美高清在线视频在线99精品 | 欧美三级三级三级爽爽爽 | 亚洲国产精品久久网午夜 | 黄.www | 国产在线一区二区三区 | 亚洲国产成人久久一区二区三区 | 久草国产在线播放 | 国产精品中文 | 久久久久毛片免费观看 | 97精品国产91久久久久久 | 免费无遮挡毛片 | 欧美精品亚洲精品日韩 | 成人禁在线观看午夜亚洲 | 中文字幕一区在线 | 性盈盈影院影院67194 |