怎么提高向mysql中插入数据的效率-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

怎么提高向mysql中插入数据的效率

<span style="font-size:9pt;line-height:1.5;"> String[] filelist = file.list();</span>


   for(String filename : filelist){            
   BufferedReader br = new BufferedReader(new FileReader(path+"/"+filename));
   String line = null;
   //得到movie的id
   line = br.readLine();
   String[] firstline = line.split(":");
   String movieid = firstline[0];
                
   while ((line = br.readLine()) != null){
       String[] lines = line.split(",");
       String userid = lines[0];
       String rating = lines[1];
       String date = lines[2]; 
           String sql = "insert into netflixdata(movieid,userid,rating,date) values('"+movieid+"','"+userid+"','"+rating+"','"+date+"')";
       int flag = stmt.executeUpdate(sql);
       if(flag == 0){
           System.out.println("添加失败");
       }
       else{
           System.out.println("添加成功");
       }

主要代码如上,(本人数据库新手)要把Netflix的数据集导入mysql中,按上面的代码运行,发现插入数据比较慢,五个半小时才插入100w条数据(4核i5,cpu 3.1GHz)

展开
收起
爵霸 2016-06-15 09:35:31 1741 0
1 条回答
写回答
取消 提交回答
  • 爵霸

    写到存储过程里面,批量提交batch,另外把索引都去掉,存储引擎的唯一性校验关掉,自动事物提交关掉。如果是在文件导入的话,直接用mysql自带的批量导入工具mysqlimport,或者用一楼的load data

    2019-07-17 19:38:41
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关电子书
更多
让 MySQL 原生分布式触手可及
立即下载
好的 MySQL 兼容可以做到什么程度
立即下载
云数据库RDS MySQL从入门到高阶
立即下载