我們從三個方向來分享一下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做模糊查詢時使用了雙百...