人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

MySQL數(shù)據(jù)庫索引的最左匹配原則

發(fā)布日期:2021-12-08 20:11 | 文章來源:CSDN

一. 聯(lián)合索引說明

建立三個字段的聯(lián)合索引

聯(lián)合索引(a,b,c)相當(dāng)于建立了索引:(a),(a,b),(a,b,c)

二. 那ac是否能用到索引呢?

先給出結(jié)論:a可以命中聯(lián)合索引(a,b,c),c無法命中,所以ac組合無法命中聯(lián)合索引。

1.建立abc聯(lián)合索引(province,city,district)

ac索引查詢

SELECT * FROM user_address WHERE province = '廣東' 
AND district = '南雄市'

顯示查詢范圍是ALL

2.直接建立ac兩個字段得聯(lián)合索引

SELECT * FROM user_address WHERE province = '廣東' 
AND district = '南雄市'

查詢結(jié)果是ref走了索引,掃描的行數(shù)也從21行變成了13行

3.ab索引查詢

查詢范圍為ref

結(jié)論

abc聯(lián)合索引,ac中的c不能命中這三個字段的聯(lián)合索引,a可以命中,所以possible_keys列會顯示使用了聯(lián)合索引

三. 思考

abc索引,acb會走索引嗎?

  • 最左前綴匹配原則,mysql會一直向右匹配直到遇到范圍查詢(>、<、between、like)就停止匹配,
  • 比如a=3 and b=4 and c>5 and d=6如果建立(a,b,c,d)順序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引則都可以用到,a,b,d的順序可以任意調(diào)整。
  • =和in可以亂序,比如a=1 and b=2 and c=3建立(a,b,c)索引可以任意順序,mysql的查詢優(yōu)化器會幫你優(yōu)化成索引可以識別的形式

四. 最左匹配原則的成因

  • 因?yàn)槁?lián)合索引,如:abc,聯(lián)合索引可以理解為有序的且形成的基礎(chǔ)是建立在a上的,從a上建立b,b上建立c,所以必須要按照順序來
  • 可以簡單理解為:先對a排序建立索引,再在a的基礎(chǔ)上對b進(jìn)行排序,再是c
  • 所以聯(lián)合索引在遇到范圍查詢,后面的索引會失效。

到此這篇關(guān)于MySQL數(shù)據(jù)庫索引的最左匹配原則的文章就介紹到這了,更多相關(guān)MySQL 索引最左匹配 內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實(shí)時開通

自選配置、實(shí)時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部