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. 一個走錯路的23歲傻小子的提問2. angular.js - angularjs 使用鼠標懸停時,標簽一直閃3. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?4. 在mac下出現了兩個docker環境5. angular.js - angularjs的自定義過濾器如何給文字加顏色?6. c++ - win764位環境下,我用GCC為什么指針占8個字節,而long是4個字節?7. java - Hibernate查詢的數據是存放在session中嗎?8. python 計算兩個時間相差的分鐘數,超過一天時計算不對9. html5 - HTML代碼中的文字亂碼是怎么回事?10. python - django 里自定義的 login 方法,如何使用 login_required()
