欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL索引失效的幾種情況小結(jié)

 更新時(shí)間:2023年03月20日 10:31:18   作者:Java-阿旭  
本文主要介紹了MySQL索引失效的幾種情況小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

哪些情況導(dǎo)致的索引失效,下面具體來了解一下

1.最左前綴原則

在MySQL數(shù)據(jù)庫中,聯(lián)合索引遵守最左前綴原則,聯(lián)合索引中,在進(jìn)行數(shù)據(jù)檢索時(shí)從索引的最左端開始匹配。聯(lián)合索引有多個(gè)列,對(duì)于多列索引,查詢過濾條件的字段,必須順序的包含索引中的字段,一旦跳過某個(gè)字段,則索引后面的字段就會(huì)失效。如果過濾條件中沒有使用聯(lián)合索引中的第一個(gè)字段,則這個(gè)索引不會(huì)被使用到。

#創(chuàng)建聯(lián)合索引
CREATE INDEX idx_name_age_tname ON student(`name`,age,tea_name);
#執(zhí)行如下查詢,因?yàn)檫^濾條件中有聯(lián)合索引的name,age因此用到了索引,過濾條件name,age位置不影響,只要出現(xiàn)就可以。
EXPLAIN 
SELECT 
  id,
  `name`,
  age 
FROM
  student 
WHERE `name` = '張三' #15*3+2+1(一個(gè)字符占用3字節(jié),15*3,是否為null占1字節(jié),varchar占2字節(jié))
  AND age = 23 # 4+1 (一個(gè)int占4字節(jié),是否為null占1字節(jié))

2. 計(jì)算、函數(shù)使索引失效

在進(jìn)行查詢的時(shí)候,過濾條件的索引進(jìn)行計(jì)算或者函數(shù)時(shí),會(huì)導(dǎo)致索引失效。

3. 類型轉(zhuǎn)換導(dǎo)致索引失效

查詢的過濾條件中,字段類型轉(zhuǎn)換(自動(dòng)/手動(dòng)),都會(huì)使所有失效。

4. 不等于(<>或!=)導(dǎo)致索引失效

查詢的過濾條件中,過濾條件的字段出現(xiàn)不等于,會(huì)使索引失效。

5. is not null /is null可能不走索引,也可以走索引

當(dāng)一張數(shù)據(jù)很多,索引列的null值比較少,有值的比較多,is not null不走索引,is null走索引。

當(dāng)一張數(shù)據(jù)很多,索引列的null值比較多,有值的比較少,is not null走索引,is null不走索引。

6. 模糊匹配Like以%開頭

在使用LIKE關(guān)鍵字進(jìn)行查詢的查詢語句中,如果匹配字符串的第一個(gè)字符為’%‘,索引就不會(huì)起作用。只有’%'不在第一個(gè)位置,索引才會(huì)起作用。

7. OR前后的條件列不是索引,導(dǎo)致索引失效

在查詢過濾條件中,OR的前面或者后面的列不是所有,那么導(dǎo)致整個(gè)where過濾條件的所有索引失效。OR的前面和后面的列必須是索引列,才能生效。因?yàn)镺R就是必須前面和后面的條件都滿足,才能是全滿足。

 到此這篇關(guān)于MySQL索引失效的幾種情況小結(jié)的文章就介紹到這了,更多相關(guān)MySQL索引失效內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL SELECT同時(shí)UPDATE同一張表問題發(fā)生及解決

    MySQL SELECT同時(shí)UPDATE同一張表問題發(fā)生及解決

    例如用統(tǒng)計(jì)數(shù)據(jù)更新表的字段(此時(shí)需要用group子句返回統(tǒng)計(jì)值),從某一條記錄的字段update另一條記錄,而不必使用非標(biāo)準(zhǔn)的語句,等等感興趣的朋友可以參考下哈
    2013-03-03
  • MySQL 數(shù)據(jù)丟失排查案例

    MySQL 數(shù)據(jù)丟失排查案例

    這篇文章主要分享了MySQL 數(shù)據(jù)丟失排查的一個(gè)案例,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-05-05
  • 解決MySQL報(bào)錯(cuò)incorrect?datetime?value?'0000-00-00?00:00:00'?for?column

    解決MySQL報(bào)錯(cuò)incorrect?datetime?value?'0000-00-00?00:00

    這篇文章主要給大家介紹了關(guān)于如何解決MySQL報(bào)錯(cuò)incorrect?datetime?value?'0000-00-00?00:00:00'?for?column的相關(guān)資料,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • mysql間隙鎖的具體使用

    mysql間隙鎖的具體使用

    MySQL中有多種鎖類型,本文主要介紹了mysql間隙鎖的具體使用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • MySQL一些常用高級(jí)SQL語句詳解

    MySQL一些常用高級(jí)SQL語句詳解

    對(duì)?MySQL?數(shù)據(jù)庫的查詢,除了基本的查詢外,有時(shí)候需要對(duì)查詢的結(jié)果集進(jìn)行處理。例如只取?10?條數(shù)據(jù)、對(duì)查詢結(jié)果進(jìn)行排序或分組等等,今天就給大家分享MySQL一些常用高級(jí)SQL語句,感興趣的朋友一起看看吧
    2022-06-06
  • mysql創(chuàng)建的外鍵無法保存的原因以及處理辦法

    mysql創(chuàng)建的外鍵無法保存的原因以及處理辦法

    這篇文章主要介紹了mysql創(chuàng)建的外鍵無法保存的原因以及處理辦法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • mysql 5.7.21 winx64綠色版安裝配置方法圖文教程

    mysql 5.7.21 winx64綠色版安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 5.7.21 winx64綠色版安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Mysql數(shù)據(jù)庫的日志管理、備份與回復(fù)詳細(xì)圖文教程

    Mysql數(shù)據(jù)庫的日志管理、備份與回復(fù)詳細(xì)圖文教程

    備份的主要目的是災(zāi)難恢復(fù),備份還可以測試應(yīng)用、回滾數(shù)據(jù)修改、查詢歷史數(shù)據(jù)、審計(jì)等,這篇文章主要給大家介紹了關(guān)于Mysql數(shù)據(jù)庫的日志管理、備份與回復(fù)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • IDEA無法連接mysql數(shù)據(jù)庫的6種解決方法大全

    IDEA無法連接mysql數(shù)據(jù)庫的6種解決方法大全

    這篇文章主要介紹了IDEA無法連接mysql數(shù)據(jù)庫的6種解決方法大全,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • mysql中的各種約束條件深入探討

    mysql中的各種約束條件深入探討

    在mysql中對(duì)編輯的數(shù)據(jù)進(jìn)行類型的限制,不滿足約束條件的報(bào)錯(cuò),本文給大家分享mysql中的各種約束條件,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-05-05

最新評(píng)論