PHP MySQL快速插入多行

时间:2017-03-29 09:59:37

标签: php mysql performance transactions prepared-statement

目前,我正在使用预准备语句在代码下插入一堆行:

更新后的代码:

spring-core

但是,我看到一篇文章谈论交易更快......我可以将交易与准备好的声明结合使用,还是应该以不同的方式使用它?假设我必须为每个脚本运行插入1000行,并且以5秒的间隔触发脚本,对我来说最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

我建议在单个INSERT语句中插入100到1000行。 (我认为您提供的代码不会在没有更多更改的情况下运行。)

使用autocommit=1TRANSACTION执行100-1000行。这样做的好处是不会占用系统,也不会收集大量可能“撤消”的数据。但是没有原子地完成所有行的缺点。

少于100会导致额外开销;超过1000个收益递减和其他形式的开销。

100-1000也是复制友好的,而不是占用复制流。

如果您已在csv文件中包含数据,请使用LOAD DATA