php循环插入json数组至数据库
在处理大量数据时,如何高效地将json数组循环插入数据库是一个常见的问题。本文将介绍一种分批处理的方式,帮助解决这个问题。
问题描述
假设我们从前端收到一个json数组$data,其中包含大量数据需要插入数据库。代码如下:
解决方法
建议将数据分批处理。假设我们需要插入5000条数据,可以按照以下方式分批执行:
1-1000条:
insert into tablename (id, name, ...) values(1, 'name1', ...),(2, 'name2', ...) .... ;1001-2000条:
insert into tablename (id, name, ...) values(1001, 'name1', ...),(1002, 'name2', ...) .... ;- ...
最后4001-5000条:
insert into tablename (id, name, ...) values(4001, 'name1', ...),(4002, 'name2', ...) .... ;原因
- mysql支持批量插入,因此我们可以将其转换成批量sql语句。
- 每条sql执行的大小有限,因此分批处理可以
避免执行失败。 - 具体分批大小可以根据实际情况调整。

避免执行失败。






