加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – MySqli插入海量数据

发布时间:2020-12-13 22:24:25 所属栏目:PHP教程 来源:网络整理
导读:我正在研究一个 PHP脚本,它将数据大量插入表中. 我正在使用这样的预备声明: $sql = "INSERT INTO clans(id,clanid,name,badge,status,playercount,score,requiredtrophies,warswon,warslost,warstied,location,warfrequency,exp,level,description,playerjs
我正在研究一个 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;

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读