資料庫的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在解析的過程中, 會將』*』 依次轉換 成所有的列名, 這個工作是通過查詢數據字典完成的, 這意味著將耗費更多的時間。
對於資料庫上的優化方法是有很多種的,暫時先介紹這些,希望能提升小編以及大夥們在資料庫上的知識,共同進步。
預祝大家新春快樂,學有所成。