数据库批量插入耗时过长问题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 语句合并为多值语句

相关推荐
zlwool2 小时前
图纸管理选型避坑指南
数据库·erp·设备erp·非标机械
小灰灰搞电子4 小时前
完全驾驭 Qt 与数据库:C++ ORM 框架 QxOrm 原理与实践指南
数据库·c++·qt
软件聚导航5 小时前
「聚小软 AI 助手」技术升级:从数据库检索到 RAG 知识库问答
前端·数据库·mysql·微信小程序·小程序·ai编程·rag
2601_960906726 小时前
1X发布自己的世界模型1XWM
mysql·mongodb·rabbitmq·memcached
学习星球6 小时前
单调栈——从“找下一个更大的“到柱状图中的最大矩形
数据库·c++·算法·leetcode·xcode
GoppViper6 小时前
RDF资源描述框架深度解析:语义Web的数据基石与实战逻辑
前端·数据库
2601_962174177 小时前
Redis 简介
数据库·redis·wpf
夜雪一千7 小时前
MySQL 各种数据同步方案全梳理:从简单复制到异构同步实战
数据库·mysql
ruleslol7 小时前
MySQL: OR查询为什么会导致索引失效
mysql
Highcharts.js8 小时前
Highcharts 下钻(Drilldown)柱状图 Demo
数据库·信息可视化·hbase·highcharts·drilldown·js模块·下钻图表