Hello! 欢迎来到小浪资源网!


PHP批量插入数据库:如何高效处理前端提交的大量JSON数组数据?


PHP批量插入数据库:如何高效处理前端提交的大量JSON数组数据?

php循环json数组批量插入数据库

前端提交一个json数组传递过来,需要循环将数据插入数据库中。此类场景,可能会遇到数据量大,一次性插入会影响数据库性能的情况。

解决方案:

推荐采用分批处理的方式插入数据,例如将5000条数据分成5批,每批1000条。

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

按照批次生成sql语句,进行批量插入操作。示例代码如下:

$datas = trim($_POST['datas']); $data = json_decode($datas); $batchSize = 1000;  $sql = "INSERT INTO tablename (id, name, ...) VALUES"; $values = [];  for ($i = 0; $i < count($data); $i++) {     if ($i % $batchSize === 0) {         $sql .= " (" . implode(", ", array_keys($data[$i])) . ")";     }     $values[] = array_values($data[$i]); }  $sql .= " (" . implode(", ", array_keys($data[count($data) - 1])) . ")"; $stmt = $dbHandle->prepare($sql); $stmt->execute($values);

分批处理的优点:

  • 减轻一次性大量插入对数据库的压力
  • 避免因单条插入语句太大而导致插入失败
  • 分批处理可以灵活调整批次大小,适应不同数据集

相关阅读