程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MYSQL索引無效和索引有效的詳細介紹

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

編輯:關於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 字段,聯表字段,一般都是有效的。 建立索引要的就是有效果。 不然還用它干嗎? 如果不能確定在
某個字段上建立的索引是否有效果,只要實際進行測試下比較下執行時間就知道。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved