mysql處理大數據合並的另一種方法


在做項目的時候我碰到了一個這樣的場景,有兩張表,數據都在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中。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM