在作项目的时候我碰到了一个这样的场景,有两张表,数据都在300W左右,如今要求在生产环境中合并这两张表为一张表,原本想用sql语句insert into select来实现,后来发现这样操做速度很慢,由于里面有计算逻辑。大概的表结构以下:sql
table1it
id tel credits1table
table2select
id tel credits2 pointssql语句
合并后的表为方法
table命名
id tel credits points数据
其中credits = credits1 + credits2项目
我采用的实现方法是这样的:tab
第一步、先建一个视图。
名为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中。