欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 多索引 查詢,mysql索引丟失的情況

錢琪琛2年前19瀏覽0評論
mysql 多索引 查詢,mysql索引丟失的情況?

1、like 以%開頭,索引無效;當like前綴沒有%,后綴有%時,索引有效。

2、or語句前后沒有同時使用索引。

當or左右查詢字段只有一個是索引,該索引失效,只有當or左右查詢字段均為索引時,才會生效

3、組合索引,不是使用第一列索引,索引失效。

4、如果列類型是字符串,那一定要在條件中將數據使用引號引用起來,否則不使用索引

數據類型出現隱式轉化。如varchar不加單引號的話可能會自動轉換為int型,使索引無效,產生全表掃描。

5、在索引列上使用 IS NULL 或 IS NOT NULL操作。

索引是不索引空值的,所以這樣的操作不能使用索引,可以用其他的辦法處理,例如:數字類型,判斷大于0,字符串類型設置一個默認值,判斷是否等于默認值即可。(此處是錯誤的!)

解釋以上錯誤:

此處我將重新創建一個emp表

創建新的索引

查看索引

執行SQL語句

由此可發現有使用到索引

總結:在索引列上使用 IS NULL 或 IS NOT NULL操作,索引不一定失效!!!

6、在索引字段上使用not,<>,!=。

不等于操作符是永遠不會用到索引的,因此對它的處理只會產生全表掃描。 優化方法: key<>0 改為 key>0 or key<0。

7、對索引字段進行計算操作、字段上使用函數。(索引為 emp(ename,empno,sal))

8、當全表掃描速度比索引速度快時,mysql會使用全表掃描,此時索引失效。