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

Afo*_*mes 2 mysql performance insert

从性能角度(时间和服务器负载)来看,最好是进行多个插入或单个插入多个值。

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

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

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

Nac*_*ate 5

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

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

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

因此,批量插入将比单个插入锁定表更长的时间,如果锁定时间更长并且数据库未针对它进行调整,则可能会导致其他进程出现问题。

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

更新语句可能重复db2 中批量更新比单次更新快吗?