java – NamedParameterJdbcTemplate的update()和batchUpdate()方法之间的性能和限制问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – NamedParameterJdbcTemplate的update()和batchUpdate()方法之间的性能和限制问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2129字,纯文字阅读大概需要4分钟。
内容图文
![java – NamedParameterJdbcTemplate的update()和batchUpdate()方法之间的性能和限制问题](/upload/InfoBanner/zyjiaocheng/796/c8e46374ea584a03a94f5bcab243aac9.jpg)
我想知道何时使用Spring框架的NamedParameterJdbcTemplate类中的update()或bacthUpdate()方法.
update()有任何行限制吗?有多少行可以处理update()而不会出现性能问题或挂起我的数据库?从batchUpdate()获得良好性能的行数开始?
谢谢.
解决方法:
贝娄是我的观点:
when to use update() or bacthUpdate() method from NamedParameterJdbcTemplate class of Spring framework
只要需要同时执行多个sql,就应该使用bacthUpdate().
Is there any row limitation for update()?
这应该取决于您使用的数据库.但我没有遇到行更新限制.当然,更新几行比更新许多行要快(例如,UPDATE … WHERE id = 1 vs UPDATE … WHERE id> 1).
How many rows can handle update() without having performance issues or hanging my db?
这不确定.这取决于您使用的数据库,机器性能等.如果您想知道确切的结果,您可以查看数据库供应商的基准测试,或者您可以通过某些测试来测量它.
Starting from how many rows batchUpdate() is getting good performance?
实际上,批处理INSERT,UPDATE或DELETE时常用batchUpdate(),这样可以提高性能.如:
批量插入:
SqlParameterSource[] batch = SqlParameterSourceUtils.createBatch(employees.toArray());
int[] updateCounts = namedParameterJdbcTemplate.batchUpdate("INSERT INTO EMPLOYEE VALUES (:id, :firstName, :lastName, :address)", batch);
return updateCounts;
批量更新:
List<Object[]> batch = new ArrayList<Object[]>();
for (Actor actor : actors) {
Object[] values = new Object[] {
actor.getFirstName(),
actor.getLastName(),
actor.getId()};
batch.add(values);
}
int[] updateCounts = jdbcTemplate.batchUpdate(
"update t_actor set first_name = ?, last_name = ? where id = ?",
batch);
return updateCounts;
在内部,batchUpdate()将使用PreparedStatement.addBatch(),您可以查看一些spring jdbc tutorial..批处理操作在一个“批处理”中发送到数据库,而不是逐个发送更新.
一次性向数据库发送一批更新比一个接一个地发送更快,等待每个更新完成.发送一批更新(仅往返1次)涉及的网络流量较少,数据库可能能够并行执行某些更新.此外,当您使用batchUpdate()并且默认情况下batchUpdate()不在一个事务中时,数据库驱动程序必须支持批处理操作.
您可以查看更多详情:
https://docs.spring.io/spring/docs/current/spring-framework-reference/html/jdbc.html#jdbc-advanced-jdbc
http://tutorials.jenkov.com/jdbc/batchupdate.html#batch-updates-and-transactions
希望你有所帮助.
内容总结
以上是互联网集市为您收集整理的java – NamedParameterJdbcTemplate的update()和batchUpdate()方法之间的性能和限制问题全部内容,希望文章能够帮你解决java – NamedParameterJdbcTemplate的update()和batchUpdate()方法之间的性能和限制问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。