php中文网

PHP循环插入JSON数组至数据库:如何高效处理大量数据?

php中文网

php循环插入json数组至数据库

在处理大量数据时,如何高效地将json数组循环插入数据库是一个常见的问题。本文将介绍一种分批处理的方式,帮助解决这个问题。

问题描述

假设我们从前端收到一个json数组$data,其中包含大量数据需要插入数据库。代码如下:

立即学习“PHP免费学习笔记(深入)”;

<?php $datas = trim($_post['datas']);

$data = json_decode($datas);

print_r($data);

解决方法

建议将数据分批处理。假设我们需要插入5000条数据,可以按照以下方式分批执行:

  1. 1-1000条:

    insert into tablename (id, name, ...) values(1, 'name1', ...),(2, 'name2', ...) .... ;
  2. 1001-2000条:

    insert into tablename (id, name, ...) values(1001, 'name1', ...),(1002, 'name2', ...) .... ;
  3. ...
  4. 最后4001-5000条:

    insert into tablename (id, name, ...) values(4001, 'name1', ...),(4002, 'name2', ...) .... ;

原因

  • mysql支持批量插入,因此我们可以将其转换成批量sql语句。
  • 每条sql执行的大小有限,因此分批处理可以避免执行失败。
  • 具体分批大小可以根据实际情况调整。

以上就是PHP循环插入JSON数组至数据库:如何高效处理大量数据?的详细内容,更多请关注php中文网其它相关文章!