天天看點

sql優化問題

1.減少*的使用,細化到具體列名,盡量使用表的别名。

2.如果子查詢得出的結果集記錄較少,主查詢的表較大且有索引時應該用in,反之如果外層的傳記錄較少,子查詢表大,又有索引時使用exists。主要是驅動順序的變化。

3.模糊查詢like,盡量少用%,時關鍵詞前面的%。

4.where與having都能使用時,盡量使用where

5.盡量使用多表連接配接查詢,避免子查詢。子查詢效率特别低,

6.建立索引。較頻繁地作為查詢條件的字段,唯一性不太差的字段适合建立索引,更新不太頻繁地字段适合建立索引,不會出現在where條件中的字段不該建立索引

7.多使用内部函數提高SQL效率 例如用concat連接配接,代替“||‘的符号連接配接。

8.盡量避免在where子句中使用!=或<>,in 或not in,is null,盡可能的使用not null填充資料庫,避免全盤掃描,影響效率。

10.字段的長度要有限制。

繼續閱讀