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

需要更新DB里的数百万条数据,怎么做才能节省内存开销?
现在正在做一个Batch处理,从多个表中检索数据,然后进行更新。
检索出来的数据量大概有百万条左右。
如果先全部检索出来再逐条更新的话,
server的内存会相当大的被占用。
怎么做才能减少内存占用并尽量不降低效率呢?

追记:DB更新只能逐条进行,并且出错后要全部回滚。

------解决方案--------------------
分批进行吧.
比如用游标处理,没1w条记录,做依次commit
------解决方案--------------------
先查出来生成临时表
在临时表上建索引
再用临时表 连接表 处理
结果集大时,做分段处理