我有一张表,需要导入的数据很大,大概需要1个小时,效率不行.于是我考虑采用多线程,请高手给点思路.

解决方案 »

  1.   

    是往表导入数据还是从表导出数据?文件->表?
    我不太清楚LZ的问题的环境,大概说一下思路吧
    1 作一个queue
    2 一个线程(主线程就可以)把数据从文件取出存入queue
    3 生成多个线程,每个线程有个数据库连接,并且从queue里取出数据写入到数据库(可以写入一定件数后commit)
    考虑到每个线程都访问一个queue的等待问题,也可以每个线程有个自己的queue,一个线程(主线程也可以)按一定的分类分别往每个queue存入数据
    queue就用java现成的类就可以,或者自己写一个也行
      

  2.   

    qybao(阿宝)Thanks you 具体情况是我有一个文本文件 要向数据库里导入数据 就是效率太慢 或者我考虑过分割文本文件
      

  3.   

    分割文件也可以,每个分割的文件就相当于一个queue
    只是LZ打算怎样分割,按二进制或字节吗?那样要怎样保正同一条记录没被分割?如果按记录分割,那就跟用queue没什么区别了。只是文件如果太大,用queue会比较耗内存。