java - NamedParameterJdbcTemplate 性能测试
问题描述
MyBatis
Benchmark (maxPoolSize) (minPoolSize) Mode Cnt Score Error UnitsMybatisBenchmark.batchInsert 100 100 avgt 20 127.238 ± 27.799 ms/opMybatisBenchmark.insert 100 100 avgt 20 0.821 ± 0.210 ms/opMybatisBenchmark.queryById100 100 avgt 20 0.633 ± 0.089 ms/opMybatisBenchmark.queryByIdForManualMap 100 100 avgt 20 0.717 ± 0.182 ms/op
NamedJdbcTemplate
Benchmark (maxPoolSize) (minPoolSize) Mode Cnt Score Error UnitsNamedJdbcBenchmark.batchInsert 100 100 avgt 20 533.033 ± 101.290 ms/opNamedJdbcBenchmark.insert 100 100 avgt 20 0.599 ± 0.167 ms/opNamedJdbcBenchmark.queryById100 100 avgt 20 0.300 ± 0.044 ms/opNamedJdbcBenchmark.queryByIdForManualMap 100 100 avgt 20 0.359 ± 0.090 ms/op
在做一个关于NamedParameterJdbcTemplate的性能测试,测试到batchInsert批量插入时发现效率比mybatis慢了几倍,我有点震惊。暂时还没有啥思路,期望童鞋们提供点思路或方法。测试代码地址:https://github.com/kevin70/na...
连接数共100个,使用的数据库是mysql,程序和数据库都是在同一台设备上运行的。
机器配置如下:MacBook Pro (Retina, 13-inch, Mid 2014)CPU: 3 GHz Intel Core i7Memory: 16 GB 1600 MHz DDR3
问题解答
回答1:问题已解决,需要开启rewriteBatchedStatements。MySQL Optional URL parameters
Benchmark (maxPoolSize) (minPoolSize) Mode Cnt Score Error UnitsNamedJdbcBenchmark.batchInsert 100 100 avgt 20 61.684 ± 14.840 ms/opNamedJdbcBenchmark.batchInsert2 100 100 avgt 20 59.116 ± 14.276 ms/opNamedJdbcBenchmark.insert 100 100 avgt 20 1.001 ± 0.522 ms/opNamedJdbcBenchmark.queryById100 100 avgt 20 0.415 ± 0.060 ms/opNamedJdbcBenchmark.queryByIdForManualMap 100 100 avgt 20 0.412 ± 0.064 ms/op
相关文章:
1. android - NavigationView 的侧滑菜单中如何保存新增项(通过程序添加)2. tp5 不同控制器中的变量调用问题3. 提示语法错误语法错误: unexpected ’abstract’ (T_ABSTRACT)4. 连续的数值怎么用分组显示,求大神指导,求各位老师帮忙5. 关于thinkphp 5.1中,ajax提交数据url的格式写法,加花括号就出错,请老师指点6. php7.3.4中怎么开启pdo驱动7. 老师 我是一个没有学过php语言的准毕业生 我希望您能帮我一下8. USE关键字9. http://run.php.cn/在线PHP程序运行结果不正确10. Thinkphp5.1报错不支持Redis
