现在我需要在Java程序里面实现读取Oracle库中数据再存入Myssql的功能。目前我是用在Oracle结果集中循环取值直接插入Mysql的方法,类似与
while(rsoracle.next()){
  insert into mysql();
}
但是遇到大量数据的时候速度很慢,不知道各位有什么提高效率的方法吗?

解决方案 »

  1.   

    不想做大改的话 可尝试batch操作 把一定数量的数据批量提交 这样会提高不少效率
    比方说 80000条数据 分1000条提交一次 只要提交8次
      

  2.   

    楼主可以考虑ETL工具,虽然那个工具使用来数据仓库做数据抽取的,但是应付你这种需求应该是绰绰有余了。开源的有个叫kettel的很不错~
      

  3.   

    各位最好能给些例子。我接触Java不久所以大家说的我不太清楚。
      

  4.   

    可以把oracle中数据导出到文件中,然后再读取写入mysql
      

  5.   

    想要快点就不要在java里面做,这种事情本来应该是操作系统和数据库一级的问题,用数据库带的导入导出工具
      

  6.   

    如果按照你这样的思路 建议不是取一条就插入一条,而是去一批才插入一批, 减少读取释放连接的耗顺 以及减少硬盘的频繁读写
    -----------------------
    丰搜网 专搜计算机知识的地方Web,Photoshop,Dreamweaver, Frontpage,Css,Js,视频,短信sms,彩信MMS,WAP,3G,博客,软件工程,项目管理,让我们关注更多的计算机领域的知识,共享资源,携手共进。http://www.sosof.com
      

  7.   

    如果你非要在应用层通过程序来实现数据迁移的话,mysql里面插入最快的好像就是直接用insert语句,然后你可以建立一个缓存区,用来保存insert语句,比如汇集了3000条insert语句以后就一次性插入mysql,这样效率还可以。记得以前做的简单测试是10W条记录大概6,7S的样子。不过insert语句都是自己手工创建的,而不是从另外数据源获取的。
      

  8.   

    这样做肯定慢!最好不要在java里面做