如果存在则不插入,有什么高效的方式实现?

现需要实现定期将项目A的数据同步到项目B中,从项目A提供了基于HTTP的接口获取数据,解析数据,并将解析到的数据批量插入到项目B的数据库中,但是有一个要求插入之前必须要判断当前数据是否存在。

慕容3067478
浏览 135回答 3
3回答

牛魔王的故事

分2步骤做:1.首先用关键字区建立2类记录,即已经存在的记录和不存在的记录;2.对已经存在的记录进行一次批量的Update操作,不做数据的比对工作;3.对不存在的记录进行一次批量的insert操作;这个样的效率要高很多。至于你用什么做批量操作就要看你用的数据库了。

慕运维8079593

个人感觉,通过新建临时表,现将数据插入到临时表中,在通过sql中去重语句去掉重复的记录,然后在将临时表中的数据通过方式同步到另外的数据库中,这样相对安全和效率来说,还算可以。

白板的微信

从题主的描述来看:1:定期同步 :说明数据实时性要求不高,只是周期性同步。2:HTTP的接口获取数据 :用HTTP说明数据量不大。不了解题主所说的高效指的什么:两种可能:高效开发,维护:即最小开发量,日后维护量也小。高效同步数据:即数据快速同步。    可选择的方案是:文件全量同步,ftp+shell脚本+sqlloader全是配置工作,开发量最小,好维护。同时sqlloader装载速度最快,全量同步,不用考虑数据一致性问题。如果无法做全量同步,只能增量的话,就要考虑数据重复,及一致性问题。比较好的方案是:先装载到临时表,然后库内做merge,update.
打开App,查看更多内容
随时随地看视频慕课网APP