知方号

知方号

数据量过大,使用saveBatch保存数据太慢如何解决:

数据量过大,使用saveBatch保存数据太慢如何解决:

数据量过大,使用saveBatch保存数据太慢如何解决:

在使用mybatis-plus的saveBatch方法时发现保存太慢,会生成一大堆的insert,而不是一批一批的,影响因素可能有两个,如下:

1. mybatis-plus使用saveBatch的时候,需要保证字段不为null,如果可能为null的话,在可以在注解上增加忽略

@TableField(value = "manager_name",insertStrategy = FieldStrategy.IGNORED) private StringmanagerName;

这样能保证saveBatch的时候只会有一个insert(当然这也取决于你用的批次大小,默认为1000一次insert)

如果没有特别要求,可以设置全局配置来保障,实际中使用批量保存的其实就特定表,也不是特别建议使用全局的配置,把可能的字段添加忽略就行了。

mybatis-plus: global-config: db-config: insert-strategy: ignored

修改完毕后,insert应该是一批一个insert,而不是一堆

如果需要查看具体原因,可参考,这位小伙伴测试的非常详细,我就不过多赘述了。

Mybatis-Plus saveBatch() 批量保存失效

2. 如果已经是一批一个insert以后,还是慢,则需要修改数据库

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。