数据库批量插入耗时过长问题rewriteBatchedStatements=true

文章目录


前言

今天在维护一个小项目时,发现使用mybatisplus批量插入10000条数据,耗时30秒。看了一下配置文件,发现mysql配置中没有添加rewriteBatchedStatements=true

yml 复制代码
rewriteBatchedStatements=true

完整配置

yml 复制代码
spring:
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true
     username: root
     password: 123456
     driver-class-name: com.mysql.cj.jdbc.Driver

参数说明

  1. 基础连接参数
    useUnicode=true - 启用 Unicode 字符集支持
    characterEncoding=utf-8 - 设置字符编码为 UTF-8
  2. 日期时间处理
    zeroDateTimeBehavior=convertToNull - 当遇到零日期时间值时转换为 NULL,避免解析异常
  3. 布尔类型处理
    transformedBitIsBoolean=true - 将 BIT 类型字段转换为布尔类型
  4. 多查询支持
    allowMultiQueries=true - 允许在单个语句中执行多个 SQL 查询
  5. 安全相关
    useSSL=false - 禁用 SSL 连接(开发环境常用)
    allowPublicKeyRetrieval=true - 允许公钥检索(MySQL 8.0+ 必需)
  6. 性能优化
    rewriteBatchedStatements=true - 重写批处理语句以提高性能,将多条 INSERT/UPDATE 语句合并为多值语句

相关推荐
Hrain-AI8 小时前
多 Agent 并行不打架:worktree 隔离与反馈回流落地(附脚本)
网络·数据库·人工智能·架构
净水深流9 小时前
中央厨房冷链技术实践:多温区改造、WMS落地与IoT温控架构
大数据·数据库·人工智能·冷库冷链
l1t9 小时前
测试DuckDB 2.1的match_recognize模式匹配语句
数据库·duckdb
IpdataCloud10 小时前
AI智能体调用工具怎么核验来源IP?归属地、网络类型与代理风险识别(含Python代码)
数据库·python·tcp/ip
曹牧10 小时前
Java:SQL 注入漏洞
数据库
程序员JerrySUN11 小时前
Jetson Edge AI 实战01:Nano、Xavier、Orin 怎么选?Jetson 硬件选型详解【视频讲解】
java·数据库·redis·安全·mybatis
oradh11 小时前
Oracle Undo问题总结(ORA-600 [4xxx] 系列错误)
数据库·oracle
达梦数据11 小时前
DMDRS辅助表生成规则与作用
数据库·oracle
‎ദ്ദിᵔ.˛.ᵔ₎11 小时前
MySQL 表约束
数据库·mysql
Doris__HE11 小时前
【元脑服务器NF5476G7-NF5476M7技术规格分享】
运维·服务器·网络·数据库·性能优化