现在数据里有 table1 table2 table3 table4 table5 每张表都有800W左右数据,想用java写一个update五张表userid的操作userid有索引,想用事务把这些操作合在一起, 本人新手没有做过这方面的经验特来此求代码希望各位帮帮忙,最好是能给一个代码的例子先谢大家了。

解决方案 »

  1.   

    最好分为多次update,若是一次性update整张表,更新的时间会很长,并造成锁表
      

  2.   

    1、要是你这是系统的功能的话就要考虑效率,而且你的每个个表的数据都不少。这就要对你的数据库操作进行优化,这方面俺不是很精通,你可以google一下相关资料。很多细节都对性能有影响,你的这个更新关键是数据数目多。2、要是你这是维护升级的话,就在代码里面手动处理事务。不过在代码里面处理不如用sql处理了。不管如何最终的操作还是数据库执行,所以优化应该放在数据库上,可以考虑几个方面:
    1、日志操作:你的这个更新是记录日志的,这个是个很大的消耗,数据量越大消耗越大
    2、你的索引建立的是否适合你现在的这个操作以上个人观点
      

  3.   

    JDBC就可以啦这里有很多例子
      

  4.   

    1、编写update语句时,使用where条件,将更新的记录条数控制到一定的范围内,保证能够在短时间内能够执行完成,这个时间最好不要超过5分钟,这样就能将锁表的影响降到可以接受的范围内2、通过存储过程来执行该操作:先检索出来(最好是分成多批次,免得资源不够用),然后逐条更新,提交,这样做锁表的影响是最小的