真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Mysql索引下推有什么作用

這篇文章主要講解了“MySQL索引下推有什么作用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Mysql索引下推有什么作用”吧!

為都江堰等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及都江堰網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)、都江堰網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

導(dǎo)讀

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

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

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

索引條件下推優(yōu)化可以減少存儲引擎查詢基礎(chǔ)表的次數(shù),也可以減少MySQL服務(wù)器從存儲引擎接收數(shù)據(jù)的次數(shù)。

【推薦學(xué)習(xí):mysql視頻教程】

開擼

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

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

SELECT * from user where  name like '陳%'

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

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

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

這條sql語句應(yīng)該如何執(zhí)行呢?下面對Mysql5.6之前版本和之后版本進(jìn)行分析。

Mysql5.6之前的版本

5.6之前的版本是沒有索引下推這個優(yōu)化的,因此執(zhí)行的過程如下圖:

Mysql索引下推有什么作用

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

Mysql5.6及之后版本

5.6版本添加了索引下推這個優(yōu)化,執(zhí)行的過程如下圖:

Mysql索引下推有什么作用

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

實踐

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

Mysql索引下推有什么作用

根據(jù)explain解析結(jié)果可以看出Extra的值為Using index condition,表示已經(jīng)使用了索引下推。

感謝各位的閱讀,以上就是“Mysql索引下推有什么作用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Mysql索引下推有什么作用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!


標(biāo)題名稱:Mysql索引下推有什么作用
新聞來源:http://weahome.cn/article/gjdgop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部