首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于 EXCEL 大量数据库导入 求方案解决办法

2012-04-06 
关于 EXCEL 大量数据库导入求方案关于 EXCEL 大量数据库导入求方案数据库是mysql业务说明:客户 每月 都有

关于 EXCEL 大量数据库导入 求方案
关于 EXCEL 大量数据库导入 求方案

  数据库是mysql

  业务说明:

  客户 每月 都有 大量数据库导入(EXCEL导入),导入的数据可能有重复,并且这些数据都需要进行判断操作。

  每次导入的数据量有1-2w条。 

  因为中间存在着数据判断的过程,不是单纯的导入数据插入到数据库中。

  现在代码写完之后,发现效率非常慢,1-2w条数据 需要10分钟左右才能完全导入。

  代码部分 
   
  大致流程: 先查数据库 将对应信息一次性取出 存入HASHMAP 中,然后通过hashmap 与导入的数据做比较。
  如果不存在 HASHMAP中增加该记录的某个字段,再将新的数据存入一个集合,到最后 集合批量保存。
   
  本人已经做到尽可能不查数据库,不插入数据,数据操作的过程也尽量减少,但效率还是不高。。
   
  求各位高手指点。 万分感谢!!


[解决办法]
你要先测出来,主要消耗时间在哪。

真的减少与数据库交互的次数就能提高效率吗?(我个人有怀疑)。

你可以重写hashCode方法,自己写一个更好的hash函数。

应该能提高你HashMap的效率。

还有一个比较直接的办法,你也可以用JNI

但是,我感觉。还是你处理的问题。

我个人觉得,数据库对数据检索,有很多的优化。

你真的减少交互就能提高效率吗?
[解决办法]
逐个找可以优化的地方。
在而且,每月一次,慢点何妨,你懂得
[解决办法]
你的流程有问题,建议:
1、先把所有数据导入到数据库的临时表中,
2、通过比较确定哪些需要插入,哪些不需要插入
3、根据条件选择需要插入的数据插入正式表。

关键是怎么判断哪些需要导入,一般总有个业务主键吧,这样插入和判断就很简单、很快了......
[解决办法]
在数据库中操作比较,会比你在内存中比较快n多倍的........
[解决办法]
这个得具体分析你可以逐个打印每一项完成时间 看看时间消耗在哪了

热点排行