Skip to content

ExecutorType.BATCH的理解 #1

@ZCorners

Description

@ZCorners

个人理解

做batch操作的时候,并不指只有一个连接,而是通过多次(Statement.java)

void addBatch( String sql ) throws SQLException;

把所有待执行语句一次提交到后台,然后执行

int[] executeBatch() throws SQLException;

一次性全部提交,减少jdbc和数据库之间的交互,从而提高效率。

输出日志:


  1. executeDefault()

image

  1. executorTypeBatch()

image


两个方法虽然运行的时间差不多,但是从输出可以看到,simple由于autocommit=true,因此每次提交的时候都会执行prepare,而batch的prepare操作只有一次,因为所有数据都insert之后才调用commit,从这方面来讲batch是要由于simple的。至于连接多个表(库)的实验就没有实现了,理论上来说batch较优。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions