SQL優化之資料復用操作

2021-10-06 11:26:50 字數 979 閱讀 4030

前言:週末加班身心倦,枯心無意部落格編,昨天誓言日一篇,今朝抽空把坑填

正文:ok,廢話不多說,先讓博主講一哈業務場景

我將可愛美麗的產品經理提出的需求,概括之為同資料庫中把一張a表中資料復用到另一張b表,並根據c表的某些欄位來確定b表的某些字段值

實際上,這個功能有多種實現方式,比較容易想到的是第一步批量復用,第二步獲得b表全集並左連線c表來批量更新b的某些字段值,通過兩次批量操作效率的確是比單條操作效率要高出幾何倍。但是,效率更高的當然還是一條sql就可以完成復用+確定字段值的方式。

批量復用sql,這個相信大家都知道

insert into b表( b1,b2,b3) select b1,b2,b3 from a表
一條sql完成復用+確定字段值

insert into b(b1,b2,b3,b4,b5,b6)

select

t1.b1 as b1,

t1.b2 as b2,

t1.b3 as b3,

t1.b4 as b4,

(case

when t2.xx2 = 0 then '0'

when t2.xx2 = 1 then '1'

else '1'

end) as b5,

(case

when t2.xx3 = t1.xx3 then '0'

when t2.xx3 != t1.xx3 then '1'

else '0'

end) as b6

from a t1

left join b t2

on t2.xx1 = t1.xx1

ok,sql優化之資料復用操作,完結撒花

資料庫優化之SQL優化

sql優化 在我們書寫sql語句的時候,其實書寫的順序 策略會影響到sql的效能,雖然實現的功能是一樣的,但是它們的效能會有些許差別。選擇最有效率的表名順序 資料庫的解析器按照從右到左的順序處理from子句中的表名,from子句中寫在最後的表將被最先處理 在from子句中包含多個表的情況下 如果三個...

sql優化操作

insert優化 1,當同乙個使用者插入很多行的時候,應該盡量使用多個表的insert語句,這種方式將大大減少客戶端與資料庫之間的連線,關閉等等消耗,因為每一次插入資料都會執行連線資料庫,關閉資料庫等等操作 如下 insert into test valus 1,2 3,4 5,6 7,8 2,如果...

資料庫效能優化之SQL優化

優化目標 減少 io 次數 io永遠是資料庫最容易瓶頸的地方,這是由資料庫的職責所決定的,大部分資料庫操作中超過90 的時間都是 io 操作所占用的,減少 io 次數是 sql 優化中需要第一優先考慮,當然,也是收效最明顯的優化手段。降低 cpu 計算 除了 io 瓶頸之外,sql優化中需要考慮的就...