微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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;

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐