MYSQL索引無效和索引有效的詳細情況

2022-09-16 06:00:09 字數 763 閱讀 5735

1、where字句的查詢條件裡有不等於號(where column!=...),mysql將無法使用索引

2、類似地,如果where字句的查詢條件裡使用了函式(如:where day(column)=...),mysql將無法使用索引

3、在join操作中(需要從多個資料表提取資料時),mysql只有在主鍵和外來鍵的資料型別相同時才能使用索引,否則即使建立了

索引也不會使用

4、如果where子句的查詢條件裡使用了比較操作符like和regexp,mysql只有在搜尋模板的第乙個字元不是萬用字元的情況下才能

使用索引。比如說,如果查詢條件是like 'abc%',mysql將使用索引;如果條件是like '%abc',mysql將不使用索引。

5、在order by操作中,mysql只有在排序條件不是乙個查詢條件表示式的情況下才使用索引。儘管如此,在涉及多個資料表的查

詢裡,即使有索引可用,那些索引在加快order by操作方面也沒什麼作用。

6、如果某個資料列裡包含著許多重複的值,就算為它建立了索引也不會有很好的效果。比如說,如果某個資料列裡包含了淨是

些諸如「0/1」或「y/n」等值,就沒有必要為它建立乙個索引。

7、索引有用的情況下就太多了。基本只要建立了索引,除了上面提到的索引不會使用的情況下之外,其他情況只要是使用在

where條件裡,order by 字段,聯表字段,一般都是有效的。 建立索引要的就是有效果。 不然還用它幹嗎? 如果不能確定在

某個欄位上建立的索引是否有效果,只要實際進行測試下比較下執行時間就知道。

MYSQL索引無效和索引有效的詳細介紹

1 where字句的查詢條件裡有不等於號 where column mysql將無法使用索引 2 類似地,如果where字句的查詢條件裡使用了函式 如 where day column mysql將無法使用索引 3 在join操作中 需要從多個資料表提取資料時 mysql只有在主鍵和外來鍵的資料型別...

MYSQL索引無效和索引有效的詳細介紹

1 where字句的查詢條件裡有不等於號 where column mysql將無法使用索引 2 類似地,如果where字句的查詢條件裡使用了函式 如 where day column mysql將無法使用索引 3 在join操作中 需要從多個資料表提取資料時 mysql只有在主鍵和外來鍵的資料型別...

MySQL 有效的建立索引

當資料庫中的資料量達到億級,數十億級的時候,普通的一條查詢語句都可能耗時非常長,解決此問題的乙個有效方法是有效的建立索引。合理的建立索引能夠加速資料讀取效率,不合理的建立索引反而會拖慢資料庫的響應速度 索引越多,更新資料的速度越慢 盡量在採用myisam作為儲存引擎的時候使用索引 因為mysql以b...