常見sql優化規則

2021-09-28 13:33:19 字數 1020 閱讀 7150

我們從三個方向來分享一下sql常見優化

1.*優化select查詢

1.保證不查詢多餘的列與行。

盡量避免select * 的存在,使用具體的列代替*,避免多餘的列使用where限定具體要查詢的資料,避免多餘的行使用top,distinct關鍵字減少多餘重複的行。

2.慎用distinct關鍵字

distinct在查詢乙個字段或者很少欄位的情況下使用,會避免重複資料的出現,給查詢帶來優化效果。但是查詢字段很多的情況下使用,則會大大降低查詢效率。原因是當查詢很多欄位時,如果使用distinct,資料庫引擎就會對資料進行比較,過濾掉重複資料,然而這個比較,過濾的過程則會毫不客氣的占用系統資源,cpu時間。

3.慎用union關鍵字

union具有去重的操作,增加了計算時間。union all不需要去重,但會包含相同記錄。同樣功能下,首選union all操作。

4.判斷表中是否存在資料

例如 select count(*) from product

select top(1) id from product

比較首選後者。

5.連線查詢的優化

首先你要弄明白你想要的資料是什麼樣子的,然後再做出決定使用哪一種連線,這很重要。各種連線的取值大小為:a.內連線結果集大小取決於左右表滿足條件的數量 b.左連線取決與左表大小,右相反。c.完全連線和交叉連線取決與左右兩個表的資料總數量

*2.*insert插入優化

insert into select批量插入,明顯提公升效率。所以以後盡量避免乙個個迴圈插入。

***3.優化修改刪除語句

如果你同時修改或刪除過多資料,會造成cpu利用率過高從而影響別人對資料庫的訪問。如果你同時修改或刪除過多資料,會造成cpu利用率過高從而影響別人對資料庫的訪問。折中的辦法就是,分批運算元據。

delete table_name where id<1000

常見sql技巧 優化

1 正則 regexp 比like更消耗資源 select name,email from t where email regexp 163 com select name,email from t where email like 163.com ro email like 163,com 2 r...

常見SQL語句優化

一 常用sql的優化 1,優化大批量insert語句 insert into test values 1,2 2,3 6,7 不要使用insert into test values 1,2 insert into test values 2,3 insert into test values 6,7...

常見SQL語句優化

隨著業務的發展,資料庫資料量與日俱增,這時候進行通過sql運算元據庫就會帶來一系列待優化的問題。對於sql語句的優化,這裡我大致的把它劃分為兩個方面 一方面為導致跳過索引而進行全表掃瞄,另一方面為非全表掃瞄引起的sql優化。一 導致跳過索引而進行全表掃瞄的幾種情況 1 like做模糊查詢時使用了雙百...