91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL數據庫索引的最左匹配原則是什么

發布時間:2021-11-18 16:48:49 來源:億速云 閱讀:162 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“MySQL數據庫索引的最左匹配原則是什么”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“MySQL數據庫索引的最左匹配原則是什么”這篇文章吧。

一. 聯合索引說明

建立三個字段的聯合索引

聯合索引(a,b,c)相當于建立了索引:(a),(a,b),(a,b,c)

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

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

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

MySQL數據庫索引的最左匹配原則是什么

ac索引查詢

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

MySQL數據庫索引的最左匹配原則是什么

顯示查詢范圍是ALL

2.直接建立ac兩個字段得聯合索引

MySQL數據庫索引的最左匹配原則是什么

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

MySQL數據庫索引的最左匹配原則是什么

查詢結果是ref走了索引,掃描的行數也從21行變成了13行

3.ab索引查詢
MySQL數據庫索引的最左匹配原則是什么

查詢范圍為ref

結論

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

三. 思考

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的順序可以任意調整。

  • =和in可以亂序,比如a=1 and b=2 and c=3建立(a,b,c)索引可以任意順序,mysql的查詢優化器會幫你優化成索引可以識別的形式

四. 最左匹配原則的成因

  • 因為聯合索引,如:abc,聯合索引可以理解為有序的且形成的基礎是建立在a上的,從a上建立b,b上建立c,所以必須要按照順序來

  • 可以簡單理解為:先對a排序建立索引,再在a的基礎上對b進行排序,再是c

  • 所以聯合索引在遇到范圍查詢,后面的索引會失效。

以上是“MySQL數據庫索引的最左匹配原則是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

郸城县| 萍乡市| 陈巴尔虎旗| 合江县| 夏邑县| 满洲里市| 岱山县| 上栗县| 五寨县| 昌江| 拉孜县| 岑巩县| 宜黄县| 张家口市| 五家渠市| 西充县| 黄石市| 安福县| 定安县| 金塔县| 长垣县| 紫阳县| 呼和浩特市| 桐城市| 兴安县| 东平县| 菏泽市| 长岭县| 玉田县| 广饶县| 尼勒克县| 盱眙县| 涞源县| 泰和县| 松滋市| 光泽县| 汝阳县| 台南县| 滦南县| 思南县| 鸡泽县|