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

本文共 2445 字,大约阅读时间需要 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/

你可能感兴趣的文章
nsis 安装脚本示例(转)
查看>>
NSJSON的用法(oc系统自带的解析方法)
查看>>
nslookup 的基本知识与命令详解
查看>>
NSNumber与NSInteger的区别 -bei
查看>>
NSOperation基本操作
查看>>
NSRange 范围
查看>>
NSSet集合 无序的 不能重复的
查看>>
NSURLSession下载和断点续传
查看>>
NSUserdefault读书笔记
查看>>
NS图绘制工具推荐
查看>>
NT AUTHORITY\NETWORK SERVICE 权限问题
查看>>
NT symbols are incorrect, please fix symbols
查看>>
ntelliJ IDEA 报错:找不到包或者找不到符号
查看>>
NTFS文件权限管理实战
查看>>
ntko web firefox跨浏览器插件_深度比较:2019年6个最好的跨浏览器测试工具
查看>>
ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
查看>>
ntp server 用法小结
查看>>
ntpdate 通过外网同步时间
查看>>
ntpdate同步配置文件调整详解
查看>>
NTPD使用/etc/ntp.conf配置时钟同步详解
查看>>