正在打开每日关注
正在打开每日关注
视频称 MyBatis-Plus 的 saveBatch 在预发布写入数百条记录时耗时 5-6 秒,配置 JDBC 参数后降至约 200 毫秒。
【 踩 坑 指南 】mybatis plus 批量 插入 也 有 坑 名 六 4 机 综 有 e 虽 MySQL JDBC 连接 的 url 中 要 加 rewriteBatchedStatements 参数 , 并 保证 5.1.13 以 上 版 本 的 驱动 , 才 能 实现 高 性 能 的 批量 插入 。 MySQL JDBC 驱动 在 默认 情况 下 会 无 视 executeBatch() 语 句 , 把 我 们 期 望 批量 执行 的 一 组 sql 语句 拆散 , 一 条 | 一 条 地 发 给 MySQL 数据 库 , 批 量 插入 实际
一则 Java 数据库写入性能排查案例。作者在通知消息场景中,使用 MyBatis-Plus saveBatch() 批量保存用户通知记录,称预发布环境写入约 200 条记录时耗时 5681 毫秒;日志与源码观察显示,SQL 看起来仍逐条执行。
视频把调用链归为 MyBatis-Plus → MyBatis Batch → JDBC,并建议在 MySQL JDBC URL 中加入 rewriteBatchedStatements=true。其展示的结果是第三步批量保存从约 5—6 秒降至约 200 毫秒。
性能问题应在接近真实数据量的环境中,以执行日志、SQL 形态和耗时分段定位;不能仅因调用了“批量”API,就假定数据库侧已合并提交。
结论来自单一视频案例,且版本、驱动、SQL 结构、数据库与连接配置都会影响结果。参数是否适用、对 INSERT/UPDATE/DELETE 的实际效果及兼容性,均应以项目驱动文档和压测验证为准;不要直接把视频结论当作通用修复方案。