国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

mysql索引失效的現(xiàn)象有什么

2024-07-24 12:33:48
字體:
供稿:網(wǎng)友
  索引是一種特殊的數(shù)據(jù)庫結(jié)構(gòu),由數(shù)據(jù)表中的一列或多列組合而成,可以用來快速查詢數(shù)據(jù)表中有某一特定值的記錄。本節(jié)將詳細(xì)講解索引的含義、作用和優(yōu)缺點(diǎn)。
 
  通過索引,查詢數(shù)據(jù)時不用讀完記錄的所有信息,而只是查詢索引列。否則,數(shù)據(jù)庫系統(tǒng)將讀取每條記錄的所有信息進(jìn)行匹配。
 
  可以把索引比作新華字典的音序表。例如,要查“庫”字,如果不使用音序,就需要從字典的 400 頁中逐頁來找。但是,如果提取拼音出來,構(gòu)成音序表,就只需要從 10 多頁的音序表中直接查找。這樣就可以大大節(jié)省時間。
 
  因此,使用索引可以很大程度上提高數(shù)據(jù)庫的查詢速度,還有效的提高了數(shù)據(jù)庫系統(tǒng)的性能。
 
  索引查詢失效的幾個情況:
 
  1、like 以%開頭,索引無效;當(dāng)like前綴沒有%,后綴有%時,索引有效。
  
  2、or語句前后沒有同時使用索引。
 
  當(dāng)or左右查詢字段只有一個是索引,該索引失效,只有當(dāng)or左右查詢字段均為索引時,才會生效
 
  3、組合索引,不是使用第一列索引,索引失效。
 
  4、如果列類型是字符串,那一定要在條件中將數(shù)據(jù)使用引號引用起來,否則不使用索引
 
  數(shù)據(jù)類型出現(xiàn)隱式轉(zhuǎn)化。如varchar不加單引號的話可能會自動轉(zhuǎn)換為int型,使索引無效,產(chǎn)生全表掃描。
 
  5、在索引列上使用 IS NULL 或 IS NOT NULL操作。
 
  索引是不索引空值的,所以這樣的操作不能使用索引,可以用其他的辦法處理,例如:數(shù)字類型,判斷大于0,字符串類型設(shè)置一個默認(rèn)值,判斷是否等于默認(rèn)值即可。(此處是錯誤的!)
 
  解釋以上錯誤:
 
  此處我將重新創(chuàng)建一個emp表
  
  創(chuàng)建新的索引
  
  查看索引
 
  執(zhí)行SQL語句
 
  由此可發(fā)現(xiàn)有使用到索引
 
  總結(jié):在索引列上使用 IS NULL 或 IS NOT NULL操作,索引不一定失效?。?!
 
  6、在索引字段上使用not,<>,!=。
 
  不等于操作符是永遠(yuǎn)不會用到索引的,因此對它的處理只會產(chǎn)生全表掃描。 優(yōu)化方法: key<>0 改為 key>0 or key<0。
 
  7、對索引字段進(jìn)行計算操作、字段上使用函數(shù)。(索引為 emp(ename,empno,sal))
 
  8、當(dāng)全表掃描速度比索引速度快時,mysql會使用全表掃描,此時索引失效。
 
  如果mysql估計使用全表掃描要比使用索引快,則不使用索引
 
  “mysql索引失效的現(xiàn)象有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。

(編輯:武林網(wǎng))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 文成县| 尚义县| 太康县| 前郭尔| 永吉县| 苍梧县| 宜君县| 基隆市| 娱乐| 类乌齐县| 无锡市| 休宁县| 渑池县| 江西省| 鹤山市| 屏南县| 英超| 新绛县| 永寿县| 东乌珠穆沁旗| 莲花县| 塔城市| 峡江县| 镇安县| 剑河县| 北宁市| 漳州市| 崇州市| 望奎县| 遂溪县| 巫溪县| 永宁县| 高台县| 连山| 承德市| 旬邑县| 定南县| 喀什市| 万山特区| 德化县| 普定县|