java mysql批量insert多少条效率最高

java mysql批量insert多少条效率最高,第1张

conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASS)

pstmt = conn

.prepareStatement("insert into loadtest (id,

data) values (?, ?)")

for (int i = 1i <= COUNTi++)

{

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 = 1i <= COUNTi++) {

pstmt.clearParameters()

pstmt.setInt(1, i)

pstmt.setString(2, DATA)

pstmt.execute()

if (i %

COMMIT_SIZE == 0) {

conn.commit()

}

}

conn.commit()

InnoDB:31.5秒

常见的insert语句,向数据库中,一条语句只能插入一条数据:

insert into persons

(id_p, lastname , firstName, city )

values(204,'haha' , 'deng' , 'shenzhen')!

一般1w以内的数据量,效率差距不明显,超过1w以上,特别是表字段特别多的,效率就明显有差距了。

这时可以考虑给经常查询的字段添加索引,以提高查询性能。

如果超过10w且效率明显很低的表,索引也优化过了,那就该考虑分表了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7233782.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存