往mysql数据库里导入45万条数据,30分导入完毕,可以做到吗?高人指点一下,具体点,我实现的太耗时。18分钟才导入4万来条。

解决方案 »

  1.   

    你可以用for()循环开多个线程 然后用事物和批量处理 1000条提交一次
    事物处理放在for循环的外面
      

  2.   


    多线程不一定比单线程快 每个线程之间争用CPU执行时间块  容易带来更大的性能损耗楼主可以百度下 将insert 写成程序块之类的  貌似是加上begin N个insert语句写一起 end;
      

  3.   

    感谢大家,不过我改进了一下,用的是批量导入,12分钟导完了45万条数据,我们技术总监说,还不够快,12分钟450也可以导进去。
    我用的是MySQL数据库。Java语言,在service层处理数据,从外部文件txt读出来,写到数据库一张表中。数据库操作用的是JDBC
      

  4.   

    用多线程,线程开的多少自己看,你读的时候可以试着换一下输入流,导入的话用pre...那个
      

  5.   

    感谢大家,最后我用的是LOAD DATA语句,先把数据写到txt文件里,最后一次装载到数据库里。这样好几百万条数据很快就弄进去了。