最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2021年11月18日 15:58:21   作者:風(fēng)幕浦  
sql查詢用到索引的條件是必須要遵守最左前綴原則,本文就詳細(xì)的介紹了MySQL數(shù)據(jù)庫(kù)索引的最左匹配原則,感興趣的可以了解一下

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

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

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

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

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

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

在這里插入圖片描述

ac索引查詢

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

在這里插入圖片描述

顯示查詢范圍是ALL

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

在這里插入圖片描述

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

在這里插入圖片描述

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

3.ab索引查詢
在這里插入圖片描述

查詢范圍為ref

結(jié)論

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

三. 思考

abc索引,acb會(huì)走索引嗎?

  • 最左前綴匹配原則,mysql會(huì)一直向右匹配直到遇到范圍查詢(>、<、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)化器會(huì)幫你優(yōu)化成索引可以識(shí)別的形式

四. 最左匹配原則的成因

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

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

相關(guān)文章

最新評(píng)論

米泉市| 潍坊市| 靖安县| 苍南县| 台湾省| 海城市| 香河县| 宜兰县| 南溪县| 辉县市| 河北省| 凯里市| 通河县| 宝鸡市| 镇江市| 水城县| 巨鹿县| 滕州市| 龙陵县| 大荔县| 邢台县| 海安县| 上思县| 乐山市| 稻城县| 镇宁| 拜泉县| 怀远县| 青岛市| 周宁县| 兴山县| 芜湖县| 台安县| 石河子市| 常山县| 茂名市| 广水市| 信丰县| 固镇县| 武乡县| 陇南市|