SQL語句的優化

2021-09-30 01:27:42 字數 1065 閱讀 1319

應用程式慢如牛,原因多多,可能是網路的原因、可能是系統架構的問題,還有可能是資料庫的原因。那麼如何提高資料庫sql語句執行速度呢?

程式中嵌入的sql語句,如果使用了一些優化小技巧,定能達到事半功倍的效果。

1、where子句中不使用 != ,否則放棄索引全表掃瞄

2、盡量避免 null 值判斷,否則放棄索引全表掃瞄

優化前 :

select number from t1 where number is

null

;

優化後 :

在number列上設定預設值0,確保number列無null值

select number from t1 where number=

0;

3、盡量避免 or 連線條件,否則放棄索引全表掃瞄

優化前 :

select id from t1 where id=

10or id=

20or id=

30;

優化後:

select id from t1 where id=

10union

allselect id from t1 where id=

20union

allselect id from t1 where id=

30;

4、模糊查詢盡量避免使用前置 % ,否則全表掃瞄

select name from t1 where name like

"%c%"

;

5、盡量避免使用 in 和 not in,否則全表掃瞄

select id from t1 where id in(1

,2,3

,4);

select id from t1 where id between

1and

4;

6、盡量避免使用 select * …;用具體字段代替 * ,不要返回用不到的任何字段

SQL 語句優化 OR 語句優化案例

從上海來到溫州,看了前幾天監控的sql語句和資料變化,發現有一條語句的io次數很大,達到了150萬次io,而兩個表的資料也就不到20萬,為何有如此多的io次數,下面是執行語句 select ws.nodeid,wi.laststepid,wi.curstepid from workflowinfo ...

sql語句的優化

1 in 操作符 用in寫出來的sql的優點是比較容易寫及清晰易懂,這比較適合現代軟體開發的風格。但是用in的sql效能總是比較低的,從oracle執行的步驟來分析用in的sql與不用in的sql有以下區別 oracle試圖將其轉換成多個表的連線,如果轉換不成功則先執行in裡面的子查詢,再查詢外層的...

SQL語句的優化

通過使用者反饋獲取存在效能問題的sql 通過慢查日誌獲取存在效能問題的sql 實時獲取存在效能問題的sql mysqldumpslow pt query digest pt query digest explain h 127.0.0.1,u root,p p ssword slow mysql.l...