高效的批量数据库操作
来源:互联网 发布:马歇尔计划 知乎 编辑:程序博客网 时间:2024/06/05 07:07
这阵子研究了数据库批量操作,为了让数据库批量操作时更高效,更优化,查询了网上的一些资料,今日记下,供以后用,也为广大的码友进行参考。
一、SQL批量增添数据记录
方法一:<span style="font-size:14px;">public static void insert() { // 开时时间 Long begin = new Date().getTime(); // sql前缀 String prefix = "INSERT INTO tb_big_data (count, create_time, random) VALUES "; try { // 保存sql后缀 StringBuffer suffix = new StringBuffer(); // 设置事务为非自动提交 conn.setAutoCommit(false); // Statement st = conn.createStatement(); // 比起st,pst会更好些 PreparedStatement pst = conn.prepareStatement(""); // 外层循环,总提交事务次数 for (int i = 1; i <= 100; i++) { // 第次提交步长 for (int j = 1; j <= 10000; j++) { // 构建sql后缀 suffix.append("(" + j * i + ", SYSDATE(), " + i * j * Math.random() + "),"); } // 构建完整sql String sql = prefix + suffix.substring(0, suffix.length() - 1); // 添加执行sql pst.addBatch(sql); // 执行操作 pst.executeBatch(); // 提交事务 conn.commit(); // 清空上一次添加的数据 suffix = new StringBuffer(); } // 头等连接 pst.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } // 结束时间 Long end = new Date().getTime(); // 耗时 System.out.println("cast : " + (end - begin) / 1000 + " ms"); } </span>
输出时间:cast : 23 ms
该方法目前测试是效率最高的方法!
方法二
Union All做合并,合并完一张表之后,整张表导入。下面就简单介绍一下。
Union All是做联表查询的,平常的用法是:
union all在这里的用法是,查询Table1的时候,先查询Table2的所有字段,将所有字段和Table2合并起来,然后显示出来。union同样也能做这个功能,不过二者有一点区别。union合并的时候,是两张表相同的字段合并为一个字段,而union all做到的是整张表所有的字段都合并给Table1。
所以批量插入时可以
insert into table(字段1,字段2,...) UNION ALL select '字段1','字段2',.... UNION ALL select '字段11','字段21',....
0 0
- 高效的批量数据库操作
- 关于sqlBulkCopy的高效批量操作
- EF架构~性能高效的批量操作(Insert篇)
- EF架构~性能高效的批量操作(Insert篇)
- 高效的GreenDao 数据库操作框架应用
- ibatis对MySQL数据库的批量操作
- Android数据库批量操作的性能优化
- Android 数据库批量查询数据的操作
- JAVA批量操作数据库
- 数据库批量操作
- sql数据库批量操作
- mybaits批量操作数据库
- Java批量操作数据库
- 数据库表批量操作
- java 批量操作数据库
- 数据库中的批量操作
- Android数据库批量操作
- java 高效批量插入 sqlserver 数据库
- 【Linux开发】OpenCV在ARM上的移植
- QQ首位产品经理吴宵光:腾讯17年旅途的14个关键点
- Java版-九大排序算法
- 缺少编译库libgmp.so.3: cannot open shared object file: No such file解决方案
- 编程之美读书笔记-寻找数组中的最大值和最小值
- 高效的批量数据库操作
- Leetcode 97. Interleaving String 交错字符判别 解题报告
- JVM参数配置大全
- 奇妙的等式 && 精妙的证明(二)
- 走进tomcat之一个简单Web服务器
- 段选择符和段寄存器
- android实现移动按钮
- 为 自定义 Cell 上的控件(Label、ImageView)添加手势
- amazon 3道笔试题