我使用mysql和hibernate以及spring boot data jpa(spring-boot-starter-data-jpa和mysql-connector-java)。最近我将我的spring boot项目从1.5升级到2.0。用于保存可迭代的spring数据CrudRepository的API已从save()更改为saveAll()。我在代码中进行了更改并且它可以正常工作,但速度很慢:
我已经用空表测试了两个弹簧版本的插页。 mysql服务器版本没有改变:5.7.21 - MySQL社区服务器(GPL)
我需要每天插入~2M项目,因此这种减速效果非常明显。这是我的配置:
spring.datasource.url = jdbc:mysql://localhost:3306/service?useSSL=false&rewriteBatchedStatements=true
spring.datasource.username = service
spring.datasource.password = service
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.hikari.maximum-pool-size=5
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.properties.hibernate.jdbc.batch_size=50
spring.jpa.properties.hibernate.order_inserts=true
spring.jpa.properties.hibernate.order_updates=true
spring.jpa.properties.hibernate.jdbc.batch_versioned_data=true
是否有人知道更新后发生了什么变化以及如何再次加速?
答案 0 :(得分:0)
在application.properties中设置spring.jpa.properties.hibernate.generate_statistics = true
hibernate:
generate_statistics: true