在做項目的時候我碰到了一個這樣的場景,有兩張表,數據都在300W左右,現在要求在生產環境中合並這兩張表為一張表,本來想用sql語句insert into select來實現,後來發現這樣操作速度很慢,因為裡面有計算邏輯。大概的表結構如下:
table1
id tel credits1
table2
id tel credits2 points
合並後的表為
table
id tel credits points
其中credits = credits1 + credits2
我采用的實現方法是這樣的:
第一步、先建一個視圖。
名為table
sql語句大致如下:
select table2.id,table2.tel,table1.credits1 + table2.credits2 as credits, table2.points from table2 left join table1 on table1.tel = table2.tel
上線運行一天左右,基本沒問題之後。找個運行空閒期,關閉項目。
第二步、導出視圖中的數據。
第三步、重命名視圖名稱為table_copy。
第四步、新建表table,字段為id tel credits points
第五步、把視圖中的數據導入到table中。