insert优化的方向:
- 批量插入,一个insert语句一次插入多行数据。
- 通过手工提交事务
- 主键要顺序插入,不要乱序插入
- 如果是大批量引入数据,可以用load语句从外界导入数据。
批量插入代替单条插入
使用 INSERT INTO ... VALUES (...), (...), (...) 语法一次性插入多行数据,减少网络往返和事务开销。相比逐条插入,性能提升显著,尤其在数据量较大时。
合理使用事务
将多个插入操作包裹在事务中,减少日志写入次数。但需注意事务过长可能导致锁等待或回滚开销增加,建议控制事务大小,批量提交(如每1000~5000条提交一次)。
关闭自动提交模式
在执行批量插入前,关闭自动提交(SET autocommit = 0),手动控制事务提交时机,避免每条语句都触发一次提交操作。