首页/数据/SQL 速查/批量写入调优要点
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条函数速查60 条变更与事务52 条
性能与执行计划72 条

批量写入调优要点

多行 INSERT、批提交事务、批量接口开启驱动改写:把行级往返与提交压缩成批级。

SQL 速查数据更新于 2026-10-12

示例

示例
INSERT INTO events (uid, kind, created_at) VALUES
  (1, 'click', NOW()),
  (1, 'view',  NOW()),
  (1, 'order', NOW());
-- 单语句多行:一次解析、一次网络往返

-- 大批量按批提交(结构示意)
START TRANSACTION;
-- 每 1000 行提交一次,而不是每行一次 COMMIT;
COMMIT;
JDBC 改写MySQL Connector/J 开启 rewriteBatchedStatements=true 后批量发送
PG JDBCreWriteBatchedInserts=true 可将连续 INSERT 合并为多值形式
提交粒度批太大延长事务与锁持有;太小往返多,常见每批几百到几千行

易错点

  • 逐行自动提交:每条一次事务开销,吞吐被往返与刷盘拖住
  • 批过大导致长事务:锁与回滚段压力上升,失败重试代价也大,按场景定批大小

数据来源与参考

  • MySQL 8.0 Reference Manual · INSERT
  • PostgreSQL Documentation · INSERT
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌