各位高手,我写了一段程序,生成一个字符串,然后插入到数据库中,这个程序有时会执行上千万次,但是每次执行到10多万次的时候就报了一个outOfStackException,请问一下大家都怎么处理MySQL中插入大量数据的问题?

解决方案 »

  1.   

    可以考虑在应用程序中分批次执行插入,同时批次处理间可以考虑设置sleep
      

  2.   

    可是我的数据是一边生成一边插入的。在一个循环里面搞定的。也有试过当循环到10000的倍数的时候就执行一次commit,不过好像没有用。
      

  3.   

    不知道你的sql语句怎么写,或这插入数据设计到的索引更行情况
    还有一个更新方式,是有关insert语句的写法:inert into table_name values(...),(...),(...)这样写可以减少索引更新的IO当然这样是揣测索引更新I0频繁引起
      

  4.   

    简单说一下我在做的事吧for(long i=0;i++,i<1000000){
       insertIntoDB(i);
    }
    在insertIntoDB方法中,我建立了一个到MySQL连接,调用了一条插入语句直接使用的insert into table values().然后就报outOfStackException了。我以前觉得可能是数据库的缓冲区不够了,就说每做10000次就commit一下,但是还是不行。for(long i=0;i++,i<1000000){
       insertIntoDB(i);
    if(i%10000==0){
       commitDB();
    }
    }
      

  5.   

    可以使用导文件方法解决大数据量插入问题.MYSQL中从文本文件导入数据到数据库中  
    1)注意文件格式要和字段名顺序一致每个值以TAB分割。
    mysql -uroot -proot test_databaseName -e "LOAD DATA LOCAL INFILE 'input_datafile.txt' into table test_tableName(userName,data_num)";