MySQL的JDBC连接的url中要加rewriteBatchedStatements参数,并保证5.1.13以上版本的驱动,才能实现高性能的批量插入。 MySQL JDBC驱动在默认情况下会无视executeBatch()语句,把我们期望批量执行的一组sql语句拆散,一条一条地发给MySQL数据库,批量插入实际上是单条插入,直接造成较低的性能。 只有把rewriteBatchedStatements参数置为true, 驱动才会帮你批量执行SQL 另外这个选项对INSERT/UPDATE/DELETE都有效。 原先10万条数据25个字段8个大字节字段10秒完成

mysql 加入了 rewriteBatchedStatements参数 驱动版本8.0.26 依然无效.大概两万条数据 180S

Originally posted by @javaApprenticeHzk in https://github.com/baomidou/mybatis-plus/issues/2786#issuecomment-829869601

Comment From: 986510453

@libra1010 mp的批量操作为了适配不支持批量操作的db采用的是for循环的方式实现的。所以需要用户手写真·批量操作才行。

Comment From: qmdx

1,是你说的修改数据库配置批量参数 2,注入单行执行 SQL 方法 ,文档 https://baomidou.com/pages/49cc81/#insertbatchsomecolumn 该方法也需要注意单次执行数量,不能太多