1)應儘量避免在
where 子句中使用!=或<>操作符,否則將引擎放棄使用索引而進行全表掃描。
2)應儘量避免在 where 子句中對字段進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描,如:
select id from t where num is null
可以在num上設置默認值0,確保表中num列沒有null值,然後這樣查詢:
select id from t where num=0
3)很多時候用
exists 代替
in 是一個好的選擇
4)用Where子句替換HAVING 子句 因爲HAVING 只會在檢索出所有記錄之後纔對結果集進行過濾