mysql優化篇(3)

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中有or也不會使用!

 

如何檢測你的索引建得好不好

(使用頻率高不高,合理否)

show status like 'handler_read%';

其中參數 handler_read_key 越大越好

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章