調優(二) 減少if語句的使用

2021-08-08 14:20:39 字數 755 閱讀 3643

程式中減少if語句的使用:

注: if語句通常會讓**更加負載,但這不代表要完全拋棄if語句

1、 if語句的問題

a. 通常出現if語句的**很容易越改越糟

b. 複製時會有問題,即if語句缺失domain的概念

c. 開發者必須在頭腦中模擬執行實際情況,造成腦細胞浪費

2、 替代if語句的方案:

1). 布林引數(boolean params)

背景: 有方法在修改行為時,使用了boolean: create (string boolean) else {}}

解決方案: 將乙個方法拆分成兩個新的方法

create1() {} create2(){}

2). 使用多型(polymorphism)

背景: 根據型別switch時: switch(type)

解決方案: 使用多型,新增新型別時,只需要增加相關行為

3). nullobject/optional

背景: 當外部請求理解**庫的主要用途時,回答」查一下null的情況」

解決方案:

4). 將內聯語句轉為表示式

背景: 在計算布林表示式時,包含if語句: if (boolean) }

解決方案:將if語句樹合成單個表示式: boolean1 && boolean2

5). 給出對應策略

背景: 在呼叫一些其他**時,無法確保路徑是成功的

解決方案:針對被呼叫**,給出應對策略

mysql語句的優化(調優)

1 單條查詢最後新增 limit 1,停止全表掃瞄 否則,若無索引,將會查的太多 2 where子句中不要使用 否則放棄索引全表掃瞄。3 盡量避免 null 值判斷,否則放棄索引全表掃瞄。優化前 select number from t1 where number is null 優化後 selec...

mysql sql語句效能調優

在做伺服器開發時,有時候對併發量有一定的要求,有時候影響速度的是某個sql語句,比如某個儲存過程。現在假設伺服器 執行過程中,某個sql執行比較緩慢,那如何進行優化呢?假如現在伺服器 執行如下sql儲存過程特別緩慢 call sp wplogin register 1,1,1,830000 2222...

SQL 語句效能調優

經常聽到有做應用的朋友抱怨資料庫的效能問題,比如非常低的併發,令人崩潰的響應時間,長時間的鎖等待,鎖公升級 甚至是死鎖,等等。在解決這些問題的過程中,dba 經常發現應用開發人員對資料庫的 誤用 包括 返回過多不必要的資料 不必要和不適當加鎖,對隔離級別的誤用和對儲存過程的誤用等等。但是,面對浩如煙...