现在需要将一张实时的表更新到另外一张历史表,有没有什么办法实现存在不插入,不存在则插入,大概每次插入数据都需要几万条以上,所以有什么好办法实现。两张表都是几个的字段作为主键,两张表都没有id值,但是字段都是一样的
思路供参考:
1、需要插入的数据分批(比如500一批,可存在Map中,key可以为其中一个唯一主键)到历史表进行查询,存在的数据从Map移除;
2、根据第一步Map查询实时表数据;
3、分批批量(不要依次插入几万条,建议分批,比如每次1000条)插入历史表;
insert into 历史表 t1
select * from 实时表 t2
where not exists(select 1 from 历史表 where t1.主键1=t2.主键1 and t1.主键2=t2.主键2 ......)