有10万个客户,一次性导入到数据库(MySQL),并分配给10个人,现在的问题是:
1、导入时时间太长,而且数据库弹出关于事务的错误,数据无法插入数据库。我用的是poi读取excel,利用循环insert到数据库中。
2、分配客户时,要先根据条件搜索出这10万客户的ID,放到内存中,(好卡,不,是爆卡!!!)其实是放在session中,
再选择要分配给哪些人checkbox,提交到action中,循环insert到数据库中。
这应该属于优化,希望有高人给出个解决方案,感激不尽。

解决方案 »

  1.   

    1、你可以在循环读取Excel的时候,分批插到数据库里面去,不要循环insert,是循环分批。我记得preparedStatement有一个addBatch的方法的,可以批量插入。2、不知道你这个分配给10个人为什么还要insert,可以在这10万个人,每人的信息里面增加一个字段,就是“被分配到人的ID”,这不就唯一确定了嘛。还有,你这个分配是自动分配的,还是手动分配的啊。为什么要一次性10万这么多。看你的描述,应该是手动分配的了。你可以先分页选出人来,哪些是没被分配的,然后这10个总好说,数量不大,你可以给这10个人做一个状态,每个人都被分配到了多少人,要是这个人已经到了1万人了(我指的是平均分配),那就不允许分配了。然后就分配给剩下的人。
      

  2.   

    数据存放到 指定格式的Excel中
    然后从Excel表中 读取数据
    调用存储过程进行存储
      

  3.   

    10万数据还不是太大把。使用jdbc的批量操作,就是1楼的addBatch