开发者社区> 问答> 正文

怎么提高向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 2043 0
1 条回答
写回答
取消 提交回答
  • 写到存储过程里面,批量提交batch,另外把索引都去掉,存储引擎的唯一性校验关掉,自动事物提交关掉。如果是在文件导入的话,直接用mysql自带的批量导入工具mysqlimport,或者用一楼的load data

    2019-07-17 19:38:41
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像