日期:2014-05-18  浏览次数:20613 次

关于数据库更新效率的问题
求助:
场景:需要将A表的数据同步到B表,数据量为50万条。
解决方案:
1.读取A表中所有数据,在程序中循环,使用存储过程比对B表中数据,如不存在则更新,如果不存在则添加
2.读取A表和B表中所有数据,使用程序判断是否存在,然后再更新到B表

请问哪一种方法效率更高,如果有更好的方法,请指教

------解决方案--------------------
两种方式效率都不太好,效率比较低,建议通过触发器来同步

A表建立一个触发器,每次A表插入更新删除自动同步到B表,增加不需要比对,因为是单条数据比对速度很快。
及时是更新和删除,比对的次数也远远小于你的设计方案。

如果有更好的方案欢迎来拍!




------解决方案--------------------
探讨

引用:

引用:
求助:
场景:需要将A表的数据同步到B表,数据量为50万条。
解决方案:
1.读取A表中所有数据,在程序中循环,使用存储过程比对B表中数据,如不存在则更新,如果不存在则添加
2.读取A表和B表中所有数据,使用程序判断是否存在,然后再更新到B表

请问哪一种方法效率更高,如果有更好的方法,请指教


个人觉得这样不好。你可以……

------解决方案--------------------
50万 不多,你这是一次性操作吧

直接存储过程判断执行就可以了

08 可以使用 merge 语句
------解决方案--------------------
探讨
求助:
场景:需要将A表的数据同步到B表,数据量为50万条。
解决方案:
1.读取A表中所有数据,在程序中循环,使用存储过程比对B表中数据,如不存在则更新,如果不存在则添加
2.读取A表和B表中所有数据,使用程序判断是否存在,然后再更新到B表

请问哪一种方法效率更高,如果有更好的方法,请指教