博客
关于我
数据库批处理和一般处理的快慢比较
阅读量:635 次
发布时间:2019-03-14

本文共 2510 字,大约阅读时间需要 8 分钟。

批处理模式与一般处理模式的对比分析

在数据库操作中,批处理模式和一般处理模式是两种常见的处理方式。本文将从性能和效率两个方面,探讨这两种模式的异同点。

批处理模式的核心优势在于其处理效率。传统的处理模式中,每次数据库操作都需要单独建立连接和预编译语句,这在面对大量数据时会带来显著的性能瓶颈。而批处理模式通过将批量数据一次性提交到数据库,能够大幅减少连接建立和语句执行的次数,从而显著提升操作速度。

以下是两种模式的实现示例:

// 通用处理模式示例
public static void commonHandle() {
Connection con = null;
PreparedStatement pstmt = null;
try {
long startTime = new Date().getTime();
con = DbUtils.getConnection();
con.setAutoCommit(false);
String sql = "insert into employee(eno,ename,salary,dname) values(?,?,?,?)";
for (int i = 100000; i < 200000; i++) {
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, i);
pstmt.setString(2, "员工" + i);
pstmt.setFloat(3, 40000f);
pstmt.setString(4, "研发部");
pstmt.executeUpdate();
}
con.commit();
long endTime = new Date().getTime();
System.out.println("commonHandle执行总时长:" + (endTime - startTime));
} catch (Exception e) {
e.printStackTrace();
try {
if (con != null && !con.isClosed()) {
con.rollback();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
} finally {
DbUtils.closeConnection(null, pstmt, con);
}
}
// 批处理模式示例
public static void batchHandle() {
Connection con = null;
PreparedStatement pstmt = null;
try {
long startTime = new Date().getTime();
con = DbUtils.getConnection();
con.setAutoCommit(false);
String sql = "insert into employee(eno,ename,salary,dname) values(?,?,?,?)";
pstmt = con.prepareStatement(sql);
for (int i = 200000; i < 300000; i++) {
pstmt.setInt(1, i);
pstmt.setString(2, "员工" + i);
pstmt.setFloat(3, 40000f);
pstmt.setString(4, "研发部");
pstmt.addBatch();
}
pstmt.executeBatch();
con.commit();
long endTime = new Date().getTime();
System.out.println("batchHandle执行总时长:" + (endTime - startTime));
} catch (Exception e) {
e.printStackTrace();
try {
if (con != null && !con.isClosed()) {
con.rollback();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
} finally {
DbUtils.closeConnection(null, pstmt, con);
}
}

通过以上代码对比,可以看出批处理模式的核心优势在于一次性处理大量数据,显著提升了操作效率。在实际应用中,一个表字段越多,SQL语句越复杂时,批处理模式的优势会更加明显。

转载地址:http://ujooz.baihongyu.com/

你可能感兴趣的文章
Networkx读取军械调查-ITN综合传输网络?/读取GML文件
查看>>
network小学习
查看>>
Netwox网络工具使用详解
查看>>
Net与Flex入门
查看>>
net包之IPConn
查看>>
Net操作配置文件(Web.config|App.config)通用类
查看>>
Neutron系列 : Neutron OVS OpenFlow 流表 和 L2 Population(7)
查看>>
New Relic——手机应用app开发达人的福利立即就到啦!
查看>>
NFinal学习笔记 02—NFinalBuild
查看>>
NFS
查看>>
NFS Server及Client配置与挂载详解
查看>>
NFS共享文件系统搭建
查看>>
nfs复习
查看>>
NFS安装配置
查看>>
NFS的安装以及windows/linux挂载linux网络文件系统NFS
查看>>
NFS的常用挂载参数
查看>>
NFS网络文件系统
查看>>
nft文件传输_利用remoting实现文件传输-.NET教程,远程及网络应用
查看>>
NFV商用可行新华三vBRAS方案实践验证
查看>>
ng build --aot --prod生成文件报错
查看>>