1. 字段值不一樣較少的字段作索引(好比性別:區分之後的數據會不少,mysql 會放棄使用索引)mysql
2.使用短索引 (好比:在一個字符串上創建索引,字符串是varchar(255) ,若是在前10個或20個字符內,多數值是唯一的,那麼就不要對整個列進行索引。)sql
3.MySQL查詢僅使用一個索引,所以若是where子句中已經使用了索引的話,order by中的列是不會再使用索引。所以數據庫默認排序能夠符合要求的狀況下不要使用排序操做;儘可能不要包含多個列的排序,若是須要最好給這些列建立複合索引。數據庫
4.like語句操做unix
通常狀況下不鼓勵使用like操做,若是非使用不可,如何使用也是一個問題。like 「%bbb%」 不會使用索引而like 「aaa%」可使用索引。排序
5. 不要在索引列上進行計算索引
例如: select * from testable where time_unix(ccc) = 100字符串
會致使索引丟失,所有掃描table
6.不使用NOT IN和<>操做test
7.單獨引用複合索引裏非第一位置的索引列.select