資料庫索引失效

2021-07-29 09:59:03 字數 906 閱讀 9494

作資料庫索引能起到優化資料庫查詢,提高查詢效率的作用。並且對也稍微大一點的資料量的服務來說,索引的建立是必須的,也是關鍵的。但是索引也要合理應用,不要遇到查詢就建索引,也不能亂建。如果造成索引失效那還不如不建。索引失效有的時候是因為自己的語句問題造成的。下面是幾種造成索引失效的幾種原因, 

一、以下的方法會引起索引失效 

?1,<> 

2,單獨的》,<,(有時會用到,有時不會) 

3,like "%_" 百分號在前. 

4,表沒分析. 

5,單獨引用復合索引裡非第一位置的索引列. 

6,字元型字段為數字時在where條件裡不新增引號. 

7,對索引列進行運算.需要建立函式索引. 

8,not in ,not exist. 

9,當變數採用的是times變數,而表的字段採用的是date變數時.或相反情況。 

10, 索引失效。 

11,基於cost成本分析(oracle因為走全表成本會更小):查詢小表,或者返回值大概在10%以上 

12,有時都考慮到了 但就是不走索引,drop了從建試試在 

13,b-tree索引 is null不會走,is not null會走,位圖索引 is null,is not null   都會走 

14,聯合索引 is not null 只要在建立的索引列(不分先後)都會走, 

in null時   必須要和建立索引第一列一起使用,當建立索引第一位置條件是is null 時,其他建立索引的列可以是is null(但必須在所有列都滿足is null的時候),或者=乙個值; 

當建立索引的第一位置是=乙個值時,其他索引列可以是任何情況(包括is null =乙個值),以上兩種情況索引都會走。其他情況不會走。 

先把上述場景寫在這裡,必備不時之需。

**

資料庫索引 索引失效

以下情況不走索引 select from student where name like xiaoyao select from student where not score 100 select from student where score 100 select from student w...

資料庫索引失效

索引失效 1 沒有查詢條件,或者查詢條件沒有建立索引 2 在查詢條件上沒有使用引導列 3 查詢的數量是大表的大部分,應該是30 以上。4 索引本身失效 5 查詢條件使用函式在索引列上 見12 6 對小表查詢 7 提示不使用索引 8 統計資料不真實 9 cbo計算走索引花費過大的情況。其實也包含了上面...

資料庫索引失效情況

索引失效 1.建立了單字段索引,where條件內多個字段alter table test add index test index name using btree select from test where name test and 02.建立聯合索引,where條件單個字段alter tab...