一尘不染

哪个更快:多个单INSERT或一个多行INSERT?

mysql

我正在尝试优化将数据插入MySQL的代码的一部分。我应该将INSERT链接起来以制作一个巨大的多行INSERT还是更快地使用多个单独的INSERT?


阅读 328

收藏
2020-05-17

共1个答案

一尘不染

https://dev.mysql.com/doc/refman/8.0/zh-CN/insert-
optimization.html

插入行所需的时间由以下因素决定,其中数字表示近似比例:

  • 连接:(3)
  • 向服务器发送查询:(2)
  • 解析查询:(2)
  • 插入行:(1×行大小)
  • 插入索引:(1×索引数)
  • 闭幕:(1)

由此显而易见,发送一条大语句将为您节省每个插入语句7的开销,在进一步阅读本文时还说:

如果要同时从同一客户端插入许多行,请使用带有多个VALUES列表的INSERT语句一次插入几行。这比使用单独的单行INSERT语句要快得多(某些情况下要快很多倍)。

2020-05-17