php – MySqli插入海量数据

我正在研究一个PHP脚本,它将数据大量插入表中.

我正在使用这样的预备声明:

$sql = "INSERT INTO clans(id, clanid, name, badge, status, playercount, score, requiredtrophies, warswon, warslost, warstied, location,warfrequency, exp, level, description, playerjson, lastupdate)
            VALUES ('', ?, ?, ?, ?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?, ?, ?, now())";
$stmt = $con->prepare($sql); //prepare update statement

$stmt->bind_param('ssisiiiiiissiiss',$clanid,$name,$badge,$status,$playercount,$score,$requiredtrophies,$warswon,$warslost,$warstied,$location,$warfrequency,$exp,$level,$description,$playerarray);

之后我有一个while循环,它将执行大量的查询(数十万甚至几百万!),其中的数据非常大! playerjson是一个巨大的json数组.

数据将从网站API的JSON响应中接收.

我查看了事务,但他们最终得到了一个502 Bad Gateway,我认为这是因为内存中的数据太多了.这不是超时问题,因为我在nginx和ini_set中处理它们

那么批量插入大量数据的最快方法是什么?

最佳答案
最快的方法是LOAD DATA INFILE.考虑创建一个文件!

但在你的情况下,创建一个临时表

create table clans_temp like clans;

并插入其中.然后在一个查询中更新原始文件并删除临时表.

据我所知,鉴于问题的限制,这是最快捷的方式.

转载注明原文:php – MySqli插入海量数据 - 代码日志