java mysql批量insert多少条效率最高
答案:1 悬赏:70 手机版
解决时间 2021-01-24 03:22
- 提问者网友:杀生予夺
- 2021-01-23 03:09
java mysql批量insert多少条效率最高
最佳答案
- 五星知识达人网友:洎扰庸人
- 2021-01-23 04:48
conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASS);
pstmt = conn
.prepareStatement("insert into loadtest (id,
data) values (?, ?)");
for (int i = 1; i <= COUNT; i++)
{
pstmt.clearParameters();
pstmt.setInt(1,
i);
pstmt.setString(2, DATA);
pstmt.execute();
}
MyISAM:246.6秒、InnoDB:360.2秒
方法2: 使用事务,不自动commit
Java code
复制代码
代码如下:
conn =
DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASS);
conn.setAutoCommit(false);
pstmt = conn
.prepareStatement("insert into loadtest (id, data) values (?, ?)");
for (int i = 1; i <= COUNT; i++) {
pstmt.clearParameters();
pstmt.setInt(1, i);
pstmt.setString(2, DATA);
pstmt.execute();
if (i %
COMMIT_SIZE == 0) {
conn.commit();
}
}
conn.commit();
InnoDB:31.5秒
pstmt = conn
.prepareStatement("insert into loadtest (id,
data) values (?, ?)");
for (int i = 1; i <= COUNT; i++)
{
pstmt.clearParameters();
pstmt.setInt(1,
i);
pstmt.setString(2, DATA);
pstmt.execute();
}
MyISAM:246.6秒、InnoDB:360.2秒
方法2: 使用事务,不自动commit
Java code
复制代码
代码如下:
conn =
DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASS);
conn.setAutoCommit(false);
pstmt = conn
.prepareStatement("insert into loadtest (id, data) values (?, ?)");
for (int i = 1; i <= COUNT; i++) {
pstmt.clearParameters();
pstmt.setInt(1, i);
pstmt.setString(2, DATA);
pstmt.execute();
if (i %
COMMIT_SIZE == 0) {
conn.commit();
}
}
conn.commit();
InnoDB:31.5秒
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯