日期:2014-05-20  浏览次数:20741 次

替换还是修改?
A B表中含有有相同字段的N条数据

A表为标准,B表要参考A表做数据更新.
是比较A表和B表,发现不同的数据就更新这条数据快(这样写入数据的次数好像少一点,但是多了比较)

还是直接用A表数据替换B表相关数据快(这样写入数据的次数好像多,但是没有比较)

------解决方案--------------------
如果数据不多的话,使用一个嵌套查询一次可以查出只在A表中存在而B表中不存在的所有记录,比较的次数也不多
------解决方案--------------------
觉得直接替换的好...
还可以省略掉查询...
如果要比较你就要用到2N次查询.或许插入
相比直接N次插入好点吧
------解决方案--------------------
可以做成view吗?让他自己更新。DB不熟,帮顶。既然B要和A一致,还管他什么地方不同,直接就盖了。
------解决方案--------------------
我认为先比较在替换可能会好点
------解决方案--------------------
应该是替换快,对表join是很费性能的。对单表操作将会快很多
------解决方案--------------------
还有中思路。可能实现效率上更快。
1.先drop 掉 A表。
2.select * into B from A //(select into from)要求目标表(B)不存在,因为在插入时会自动创建。

或者
1.delete * from A .//把A表的记录全删除
2.insert into B select * from A . //(insert into select from)要求目标表(B)存在


------解决方案--------------------
满有意思的,应该是替换快把
------解决方案--------------------
1 如果B表在使用中,则删除是不行的,否则删除,然后重新插入所有数据速度最快。 因为 insert 速度比update要快,特别是大数据量。


2 建议给数据增加一个最后更新日期,这样你比较时可以加快速度

3 select 速度比update速度快,不过得看每次更新的数据比例了。如果每次超过一定比例的数据会被更新,比如80%,我看直接update好了