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

來源:互聯網
上載者:User

標籤:使用   資料   c   時間   r   sql   mysql   測試   函數   

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索引無效和索引有效詳細介紹

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.