有几万个文本文件,每个文件有几万行数据。现在用c#程序把这些数据都插入mysql的表中,这种方法的速度很成问题,一台普通配置pc,导入一个文件(4万行)需要20分钟,考虑到文件太多,耗时太久了。我想到的办法是,在某性能强的服务器上装2个虚拟机,虚拟机和本机同时导入,相当于多台机器导。我用C#先读入每个文件,然后导入mysql ,不知道在程序层面,有什么具体优化策略或技术吗?
对于大数据量处理没有经验,还请各位多多指教!

解决方案 »

  1.   

    写个shell就可以了吧 
    for循环调用mysql -e "load data"
      

  2.   

    谢谢!这种方式速度很高吗?我初步计算了一下,目前的程序:
    每秒钟插入33行mysql记录,导入一个4万行文件20分钟,我还需要用程序读取一些其余信息一并写入,不知道在mysql数据表这里有什么优化策略吗?
      

  3.   

    你是怎样插入的?
    用LOAD DATA是比较快的
      

  4.   

    我用如下语句:
    string infoQuery = "INSERT INTO talbe1(id,value1,value2) VALUES('" + id+ "','" + value1 + "','" + value2+ "')";                        
                           
    MySqlCommand cmd = new MySqlCommand(infoQuery, conn);
    cmd.ExecuteNonQuery();
      

  5.   

    我尝试了各位所说的load data,比我原来的方法快了不止20倍阿 
    解决了大问题!
    谢谢大家!分不多,不足以表达我的感激!
      

  6.   

    大量数据导入使用LOAD更快一些。