php大批量插入数据库时处理方法

当我们有大批量的数据要写入MySQL数据库时,这时就要考虑到效率的问题了。比如说现在我们有200W条数据要写入数据库时:

1、直接使用:insert into 语句进行插入

直接使用insert into进行大批量的数据写入时,该方法的效率非常的地,200w条数据经测试2个小时之内还执行不完,不建议。

2、使用事务提交,批量插入数据库,比如每隔10W条提交一下

使用事务提交,每隔10W条提交一次,该方式的效率比使用insert into语句直接进行写入时效率要高很多,执行200w条数据耗在8分钟左右。

3、使用优化SQL语句:将SQL语句进行拼接,使用 insert into table () values  (),(),(),()然后再一次性插入。

注意:如果字符串太长,则需要配置下MYSQL,设置max_allowed_packet的值,

使用优化SQL语句写入200w条数据时仅仅耗时1分钟左右


总结:在插入大批量数据时,第一种方法无疑是最差劲的,而第二种方法在实际应用中就比较广泛,第三种方法在插入测试数据或者其他低要求时比较合适,速度确实快。