常用的sql效能優化方法

2021-08-27 21:40:23 字數 1494 閱讀 6452

1. 採用繫結變數的方式。

繫結變數是解決動態語句硬解析的利器。如果sql執行頻度較高,但處理的資料量較少,結果集也相對較小,sql語句的解析時間也會接近或高於執行時間,此時就應該採用繫結變數的方式,這樣就能減少sql語句編譯時間,提高sql語句執行效率。

2. 在where字句中盡量採用like來匹配,而不用字串擷取函式substr。

在使用like的時候,應盡量使用右匹配(a%),而不使用全匹配(%a%)和左匹配(%a),使用右匹配可以提供較多的資料降低查詢開銷。

3. select字句中只取所需要的字段。

每個不需要的列的都會消耗一定的效能。

4. 避免不必要的資料格式轉換。

4.1 主外來鍵的資料型別一定要一致,避免在join連線查詢時產生資料型別轉換,消耗效能。

4.2 如果需要資料型別轉換,盡量在程式中完成。

4.3 對於較短的列,盡量使用字元型別,而不是可變字元型別;盡量使用整數,而不是浮點數;盡量使用日期,而不是字元;盡量使用數字,而不是字元。

5. 盡量不用檢視。

6. 如果需要插入或更新大批量資料,盡量使用批處理。

如果是一條一條執行,則效能低下,應該採用批處理,但是批處理也要控制數量,如果數量太大,可能會造成資料庫鎖表。

7. 避免在sql語句上進行計算。

8. 不要在in語句裡放太多的值。

通過in語句可以減少sql的呼叫次數,但是如果in語句裡的值的個數過多的話,會導致執行計畫的不穩定和sql效能下降。一般in語句裡的個數在20個以下效能較好,20個以上100個以下效能不變,超過100個則效能可能會下降。

9. 在查詢範圍時盡量使用閉區間。

10. 不能用包含null值的列做索引。

任何包含null值的列都不會被包含在索引中。即使索引有多列,但只要有一列包含null值,該列就會從索引中刪除,也就是說如果某一列存在null值,即使對該列建索引,也不會提高查詢效率。

11. 盡量避免使用巢狀查詢。

巢狀的層次越深,效率越低。可以採用的辦法是,將子查詢單獨提出來,分多步完成。如果子查詢無法避免,應盡量在子查詢中過濾掉盡可能多的行。或者考慮進行連線查詢。

12. 盡量避免使用distinct關鍵字。

使用distinct是為了保證在查詢結果集中不出現重複行,但是distinct會產生一張工作表,並進行排序來刪除重複,這會大大增加查詢和i/o的次數。

13. 避免在order by字句中使用表示式。

避免對3個以上的字段進行排序。      

14. 索引的使用。

合理的使用索引。

效能優化 索引優化SQL的方法

增加索引會有利於查詢效率,但會降低insert,update,delete的效率,但實際上往往不是這樣的,過多的索引會不但會影響使用效率,同時會影響查詢效率,這是由於資料庫進行查詢分析時,首先要選擇使用哪乙個索引進行查詢,如果索引過多,分析過程就會越慢,這樣同樣的減少查詢的效率,因此我們要知道如何增...

常用的效能優化手段(記憶體優化方法)

1.使用 arc 進行記憶體管理,arc 是 ios 提供的採用自動引用計數方式進行管理記憶體的一種手法,它避免了最常見的忘記釋放物件記憶體而引起的記憶體洩漏問題。它的工作原理是編譯器會自動的為你管理 retain 和 release 過程。2.復用 reuseidentifier,在使用單元格時應...

效能優化 SQL優化

1.列型別盡量定義成數值型別,且長度盡可能短,如主鍵和外來鍵,型別字段等等 2.建立單列索引 3.根據需要建立多列聯合索引 當單個列過濾之後還有很多資料,那麼索引的效率將會比較低,即列的區分度較低,那麼如果在多個列上建立索引,那麼多個列的區分度就大多了,將會有顯著的效率提高。4.根據業務場景建立覆蓋...