MySQL 批量插入 vs 逐条插

MySQL 插入数据:批量插入 vs 逐条插入,哪个更快?

在 MySQL 中,插入数据有两种常见方式:

  1. 批量插入:一条 SQL 插入多条数据。
  2. 逐条插入:每次插入一条数据。

这两种方式有什么区别?哪种更快?今天我们就来简单聊聊。


1. 批量插入:一次插多条

示例代码

sql 复制代码
INSERT INTO users (name, age) VALUES 
('小明', 18),
('小红', 20),
('小刚', 22);

优点

  • 速度快:只需要执行一次 SQL,数据库开销小。
  • 网络请求少:一次请求搞定多条数据,减少延迟。
  • 锁占用时间短:对表的锁定时间更短,其他操作不会被阻塞太久。

缺点

  • 单次数据量过大:如果一次插入太多数据,可能会占用大量内存。
  • 出错影响大:如果某条数据有问题,整批插入都会失败。

2. 逐条插入:一次插一条

示例代码

sql 复制代码
INSERT INTO users (name, age) VALUES ('小明', 18);
INSERT INTO users (name, age) VALUES ('小红', 20);
INSERT INTO users (name, age) VALUES ('小刚', 22);

优点

  • 灵活性高:每条数据独立插入,某条失败不影响其他数据。
  • 适合小数据量:数据量小的时候,操作简单直接。

缺点

  • 速度慢:每次插入都要执行 SQL,数据库开销大。
  • 网络请求多:每次插入都需要一次网络请求,延迟高。
  • 锁占用时间长:对表的锁定时间更长,可能影响其他操作。

3. 性能对比

测试场景

  • 插入 1000 条数据。

测试结果

  • 批量插入:耗时约 0.1 秒。
  • 逐条插入:耗时约 5 秒。

结论

批量插入的性能明显优于逐条插入,尤其是在数据量大的时候。


4. 什么时候用哪种方式?

用批量插入

  • 数据量大的时候(比如数据迁移、日志记录)。
  • 需要快速插入大量数据的场景。

用逐条插入

  • 数据量小的时候。
  • 需要保证每条数据独立性的场景(比如实时插入)。

5. 总结

  • 批量插入:速度快,适合大数据量。
  • 逐条插入:灵活性高,适合小数据量或实时插入。

根据你的需求选择合适的方式,能让你的程序跑得更快更高效!


一句话总结:能批量插入就别逐条插,效率高得多!


希望这篇文章对你有帮助!如果有问题,欢迎留言讨论~

相关推荐
掉头发的王富贵6 分钟前
ShardingSphere-JDBC入门教程(上篇)
spring boot·后端·mysql
小云数据库服务专线18 分钟前
GaussDB数据库架构师修炼(十六) 如何选择磁盘
数据库·数据库架构·gaussdb
码出财富1 小时前
SQL语法大全指南
数据库·mysql·oracle
异世界贤狼转生码农3 小时前
MongoDB Windows 系统实战手册:从配置到数据处理入门
数据库·mongodb
QuZhengRong3 小时前
【数据库】Navicat 导入 Excel 数据乱码问题的解决方法
android·数据库·excel
码农阿豪3 小时前
Windows从零到一安装KingbaseES数据库及使用ksql工具连接全指南
数据库·windows
冷崖8 小时前
MySQL异步连接池的学习(五)
学习·mysql
时序数据说9 小时前
时序数据库市场前景分析
大数据·数据库·物联网·开源·时序数据库
听雪楼主.12 小时前
Oracle Undo Tablespace 使用率暴涨案例分析
数据库·oracle·架构
我科绝伦(Huanhuan Zhou)12 小时前
KINGBASE集群日常维护管理命令总结
数据库·database