PHP批量插入数据库的3种方法及速度比较
第一种方法:使用插入到插入中,代码如下所示:$params =阵列(币值= > 50');
(0)set_time_limit;
回声日期(h:I:S);
($ i = 0;$ i < 2000000;$ + +){
connect_mysql美元->插入($params);
};
回声日期(h:I:S);
最终表现为:23:25:05 01:32:05已超过2小时了!
第二种方法是使用事务提交,批量插入数据库(每10w提交),最后显示的消费时间是22:56:13 23:04:00,总共8分钟,13秒,代码如下:
回声日期(h:I:S);
connect_mysql美元->查询('begin);
$params =阵列(币值= > 50');
($ i = 0;$ i < 2000000;$ + +){
connect_mysql美元->插入($params);
如果($ i = 100000 = 0){
connect_mysql美元->查询('commit);
connect_mysql美元->查询('begin);
}
}
connect_mysql美元->查询('commit);
回声日期(h:I:S);
第三种方法是使用优化的SQL语句:拼接SQL语句,使用INSERT到表()、值()、()、(),然后如果字符串太长,再插入一次。
你需要配置MySQL运行在MySQL命令行:设置全局max_allowed_packet = 2 * 1024 * 1024 * 10;时间:11:24:06 11:25:06;
它只需1分钟插入200W条测试数据!代码如下:
为SQL插入twenty_million(值)值;
($ i = 0;$ i < 2000000;$ + +){
为SQL。=('50 '),;
};
为SQL = substr($ SQL 0,strlen($ SQL)- 1);
connect_mysql美元->查询($ SQL);
最后得出结论,第一种方法在插入海量数据时是最差的,第二种方法在实际中得到了广泛的应用。这第三种方法更适合于插入测试数据或其他低要求,而且速度很快。