-
應儘量避免 where 子句中使用!=或<>操作符,否則引擎將放棄使用索引而進行全表掃描.
-
對查詢進行優化,應儘量避免全表掃描,首先考慮在 where 及 order by 涉及列上建立索引.
-
應儘量避免在 where 子句中對字段進行 null 值判斷,否則將導致搜索引擎放棄使用索引而進行全表掃描.
-
儘量避免在 where 子句中使用 or 來連接條件,否則將導致搜索引擎放棄使用索引而進行全表掃描.
-
in 和 not in 也要慎用,否則會導致全表掃描.
-
應儘量避免在 where 子句中對字段進行表達式操作,否則將導致搜索引擎放棄使用索引而進行全表掃描.
-
應儘量避免在 where 子句中對字段進行函數操作,否則將導致搜索引擎放棄使用索引而進行全表掃描.
-
不要在 where 子句中的 "=" 左邊進行函數丶算數運算或其他表達式運算,否則系統可能無法正確使用索引.
-
在使用索引字段作爲條件時,如果該索引是符合索引,那麼必須使用到該索引中的第一個字段作爲條件時才能保證系統使用該索引,否則該索引將不會被使用,並且儘可能讓字段順序與索引順序相一致.
-
索引並不是越多越好,索引固然可以提高響應的 select 的效率,但同時也降低了 insert 及 update 的效率,因爲 insert 或 update 時有可能會重建索引,所以怎樣建索引需要視情況而定.
-
儘可能的使用 varchar/nvarchar 代替 char/nchar,因爲首先變長字段存儲空間小,可以節省存儲空間,其次,對於查詢來說,在一個相對較小的字段內搜索效率顯然要高些.
-
任何地方都不要使用 select * ,用具體的字段代替 "*",不要返回用不到的字段.
SQL語句優化
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.