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

时间:2014-04-25 01:56:16

标签: mysql performance mysqli insert

性能方面(时间和服务器负载)最好是多个插入或单个插入多个值。

我在stackoverflow上找到了每个插入最多1000个值集。

我在谈论两种情况......

  • 约1000-3000个要插入的值
  • 有时我会在mySQL数据库中将20000-30000个值设置为inser。

感谢您的回答。很抱歉,如果它是重复但没有找到答案。

2 个答案:

答案 0 :(得分:3)

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

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

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

因此,如果锁定时间较长且DB未针对其进行调整,那么批量插入将锁定表格的时间比单个插入更长,这可能会导致其他进程出现问题。

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

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

答案 1 :(得分:1)

由于性能始终如此,正确答案取决于,因为您提到的因素还有很多。

但一般来说,多行插入语句比单个单行插入更快,因为客户端和服务器之间的通信开销较低。

推荐阅读