关于mysql百万级数据的插入和删除
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于mysql百万级数据的插入和删除,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3126字,纯文字阅读大概需要5分钟。
内容图文
![关于mysql百万级数据的插入和删除](/upload/InfoBanner/zyjiaocheng/487/1726cf9363494143856dd7335074385e.jpg)
表里面也只有一个字段,如果文件有要插入多个字段就要以文件中的分隔符来分隔,注意点 如不懂可以网上查查 LOAD DATA INFILE的用法…… (本文不是给伸手党准备的,见谅)
这个是springmvc上传文件上后台。然后后处理的controller类中的代码如果下
@RequestMapping(value = "/batchAdd", method = RequestMethod.POST) @ResponseBody public void batchAdd(@RequestParam(value="addBatchFile",required = false) MultipartFile uploadfile){ String msg = "批量导入出错"; try { long start = System.currentTimeMillis(); System.out.println(start); String name="file"+System.currentTimeMillis()+".txt"; File file = new File(name); uploadfile.transferTo(file); //此处要注意windows和linux的File.separator不一样…… 这里还要测一下的 service.test(file.getAbsolutePath().replaceAll("\\\\", "//")); long end = System.currentTimeMillis(); System.out.println(end); System.out.println("共花费" +(end-start)); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }
........ }
这个样插入mysql的500w之内大概3分钟之内能完成。
==================优美的分隔线==========================================
百万级的删除
@RequestMapping(value = "/batchDelete", method = RequestMethod.POST) @ResponseBody public void batchDelete(@RequestParam(value="deleteBatchFile",required = false) MultipartFile uploadfile){ List<String> list = new ArrayList<String>(); try { CommonsMultipartFile cf= (CommonsMultipartFile)uploadfile; DiskFileItem fi = (DiskFileItem)cf.getFileItem(); File f = fi.getStoreLocation(); List<String> data =FileUtils.readLines(f); service.updateBatchDel("delete from t_table where terminal_id= ?",data); long end = System.currentTimeMillis(); System.out.println(end); System.out.println(end-start); code = 0; }catch (Exception e){ } return "xxxxxxxx"; }
service 的代码如下
public boolean updateBatchDel(String sql,List<String> data){ boolean flag = false; PreparedStatement pstmt = null; Connection con = null; try { con = jdbcTemplate.getDataSource().getConnection(); con.setAutoCommit(false); pstmt = con.prepareStatement(sql); for(int i =0 ;i<data.size();i++){ pstmt.setString(1,data.get(i).trim()); pstmt.addBatch(); } System.out.println("------"); pstmt.executeBatch(); //批量执行 con.commit();//提交事务 flag = true; } catch (SQLException e) { try { con.rollback(); //进行事务回滚 } catch (SQLException ex) { ex.printStackTrace(); } }finally { try { pstmt.close(); con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return flag; }
这样删除百万级的数据也只在2分钟之内。
关于mysql百万级数据的插入和删除
标签:absolute tip null stp bsp 好的 upd tabs set
本文系统来源:http://www.cnblogs.com/agnils/p/7189907.html
内容总结
以上是互联网集市为您收集整理的关于mysql百万级数据的插入和删除全部内容,希望文章能够帮你解决关于mysql百万级数据的插入和删除所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。