【问题标题】:Performance Multiple inserts or multiple values single insert性能 多插入或多值单插入
【发布时间】:2014-06-10 13:36:52
【问题描述】:

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

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

我说的是两种情况……

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

【问题讨论】:

    标签: mysql performance insert


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      【解决方案2】:

      与性能一样,正确答案是取决于,因为您提到的因素还有很多。

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

      推荐阅读

      【讨论】:

        猜你喜欢
        • 2011-12-20
        • 1970-01-01
        • 1970-01-01
        • 2012-08-03
        • 1970-01-01
        • 2014-08-12
        • 1970-01-01
        • 2013-10-31
        相关资源
        最近更新 更多