數據庫的SQL優化

  • 2020 年 4 月 10 日
  • 筆記

數據庫的優化現在已經是一個熱門的話題。所以今天來講講數據庫,了解一下數據庫在優化方面的知識。

在設計以及操作數據庫其實要考慮到東西很多很多,速度,存儲空間等等性能的問題。對一個數據庫來說,只能做到更優,不可能最優,並且由於實際需求不同,優化方案還是有所差異。特別在SQL語句上,SQL語句的編寫對數據庫來說是有很大影響的。本篇文章將介紹一些在我們開發中遇到的常見情況,來學習通過SQL語句對提升數據庫性能的方法。

SQL語句:

1.應盡量避免在where子句中對字段進行null值判斷,否則將導致引擎放棄使用索引而進行全表掃描。

最好不要給數據庫留NULL,儘可能的使用 NOT NULL填充數據庫。

2.應盡量避免在 where 子句中使用 != 或 <> 操作符,否則將引擎放棄使用索 引而進行全表掃描。

3.in 和 not in 要慎用,否則會導致全表掃描。能用 between 就不要用 in 了,

很多時候用 exists 代替 in 是一個好的選擇。

4.應盡量避免在 where 子句中對字段進行表達式操作,這將導致引擎放棄使 用索引而進行全表掃描。

5.應盡量避免在where子句中對字段進行函數操作,這將導致引擎放棄使用索 引而進行全表掃描。

6.Update 語句,如果只更改1、2個字段,不要Update全部字段,否則頻繁調用會引起明顯的性能消耗,同時帶來大量日誌。

7.儘可能的使用 varchar/nvarchar 代替 char/nchar ,因為首先變長字段存儲 空間小,可以節省存儲空間,其次對於查詢來說,在一個相對較小的字段內搜索效率顯然要高些。

8.盡量避免向客戶端返回大數據量,若數據量過大,應該考慮相應需求是否合理。

9.SELECT子句中避免使用 『 * 『,ORACLE在解析的過程中, 會將』*』 依次轉換 成所有的列名, 這個工作是通過查詢數據字典完成的, 這意味着將耗費更多的時間。

對於數據庫上的優化方法是有很多種的,暫時先介紹這些,希望能提升小編以及大夥們在數據庫上的知識,共同進步。

預祝大家新春快樂,學有所成。