亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

先給出結論: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 = '南雄市'

在這里插入圖片描述

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

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

查詢范圍為ref

結論

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的順序可以任意調整。
  • =和in可以亂序,比如a=1 and b=2 and c=3建立(a,b,c)索引可以任意順序,mysql的查詢優(yōu)化器會幫你優(yōu)化成索引可以識別的形式

四. 最左匹配原則的成因

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

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

相關文章

  • 服務器上的mysql實現(xiàn)讀取sql文件

    服務器上的mysql實現(xiàn)讀取sql文件

    這篇文章主要介紹了服務器上的mysql實現(xiàn)讀取sql文件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • MySQL命令行導出導入數(shù)據(jù)庫實例詳解

    MySQL命令行導出導入數(shù)據(jù)庫實例詳解

    這篇文章主要介紹了MySQL命令行導出導入數(shù)據(jù)庫實例詳解的相關資料,需要的朋友可以參考下
    2016-10-10
  • 解決mybatis查詢結果為null時,值被默認值替換問題

    解決mybatis查詢結果為null時,值被默認值替換問題

    這篇文章主要介紹了解決mybatis查詢結果為null時,值被默認值替換問題。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • mysql 增加修改字段類型及刪除字段類型

    mysql 增加修改字段類型及刪除字段類型

    本節(jié)主要介紹了mysql如何增加修改字段類型及刪除字段類型,需要的朋友可以參考下
    2014-07-07
  • Mysql排序和分頁(order by&limit)及存在的坑

    Mysql排序和分頁(order by&limit)及存在的坑

    這篇文章主要介紹了Mysql排序和分頁(order by&limit)及存在的坑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • 使用Jmeter連接Mysql圖文教程

    使用Jmeter連接Mysql圖文教程

    Apache JMeter是Apache組織開發(fā)的基于Java的壓力測試工具。用于對軟件做壓力測試,它最初被設計用于Web應用測試,但后來擴展到其他測試領域。今天我們來看看如何使用Jmeter連接Mysql
    2016-12-12
  • 解決啟動MySQL服務時出現(xiàn)"mysql本地計算機上的MySQL服務啟動后停止"的問題

    解決啟動MySQL服務時出現(xiàn)"mysql本地計算機上的MySQL服務啟動后停止"的問題

    某一天我的MySQL啟動突然出現(xiàn)了異常:“mysql本地計算機上的MySQL服務啟動后停止,某些在未由其他服務或程序使用時將自動停止,”?,小編在網絡上面找了很多方法,MySQL啟動成功了,但是第二天開啟MySQL時還是出現(xiàn)了這個問題,現(xiàn)把兩種方法總結一下,需要的朋友可以參考下
    2023-11-11
  • MySQL復制表常用的四種方式小結

    MySQL復制表常用的四種方式小結

    mysql?想必大家比較熟悉了,我們常見的crud??sql想必大家也是手到拈來,但可能會有人不會寫mysql中復制表,所以接下來本文我會介紹四種常用的復制表的方式,需要的朋友可以參考下
    2023-07-07
  • MySQL命令行刪除表中的一個字段

    MySQL命令行刪除表中的一個字段

    本文介紹在MySQL數(shù)據(jù)庫中,如何根據(jù)字段名來刪除表中的一個字段,需要的朋友可以參考下
    2016-04-04
  • MySQL中配置文件my.cnf因權限問題導致無法啟動的解決方法

    MySQL中配置文件my.cnf因權限問題導致無法啟動的解決方法

    這篇文章主要給大家介紹了關于MySQL中配置文件my.cnf因權限問題導致無法啟動的解決方法,該無法啟動的錯誤提示代碼是:World-writable config file '/etc/my.cnf' is ignored,文中給出了詳細的解決方法,需要的朋友們下面來一起看看吧。
    2017-06-06

最新評論