mysql - 性能 多次插入或多值单次插入

标签 mysql performance insert

性能方面(时间和服务器负载)是多次插入更好还是单次插入具有多个值更好。

我在 stackoverflow 上发现每次插入最多可以有 1000 个值集。

我说的是两种情况......

  • 要插入大约 1000-3000 个值
  • 有时我会将 20000-30000 个值集插入到 mySQL 数据库中。

最佳答案

是的,通常批量插入比一次插入要快,因为它避免了为每个插入语句发生的中间通信。

但有时它会导致问题,因为插入/更新语句获取表/行的独占锁,这意味着此时没有其他进程/连接可以使用表。

如果您有多个进程同时使用数据库,其中一些正在从表中读取,一些正在写入,那么整个操作将在您批量插入时被锁定/停止

所以批量插入会比单次插入锁定表更多的时间,如果锁定时间更长并且数据库没有针对它进行调整,这可能会导致其他进程出现问题。

如果您只是在没有其他操作的情况下插入数据库,那么从文件中进行批量插入(速度要快得多),如果您有其他进程,请考虑锁定调整批量插入频率。

更新语句可能重复Is bulk update faster than single update in db2?

关于mysql - 性能 多次插入或多值单次插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23282942/

相关文章:

MySQL:为什么这个 SQL 查询不使用索引?

mysql - 我怎样才能有效地处理百万条记录

mysql - 为什么我必须在 mysql 子查询中将 bit(1) 转换为 unsigned?

performance - 带有 JBoss 'minimal' 配置的 Seam 应用程序?

javascript - 如何优化/调试性能不佳的 JavaScript 代码

mysql - 使用触发器将数据从一个表复制到另一个表(VTiger)

php - 命令不同步;你现在不能运行这个命令

javascript - 效率 - setInterval 与 Object.watch

php - MySQL 查询不插入行

MySQL 创建带有年龄计数功能的表 check()