gpt4 book ai didi

php - 从 PHP 插入 60000 行 Mysql

转载 作者:行者123 更新时间:2023-11-30 22:07:52 25 4
gpt4 key购买 nike

我有一个带有后端的 MySQL 数据库:PHP。

我必须在一张表中插入 60,000 行

我们对我的 PHP 进行了查询,返回了 1,000 行。对于每一行,我们必须插入 60 行。我们想过做一个循环,但我们不知道这样做是否是最佳做法。

插入数据的代码部分是:

$turnos = $db->query("SELECT * FROM turno t 
WHERE t.canchaId = :cancha
AND t.fecha BETWEEN :fechaInicio AND :fechaFin
AND t.nombre LIKE :cadena
ORDER BY t.fecha,t.hora ASC",
array("cancha" => $cancha["idCancha"], "fechaInicio" => $fechaInicio, "fechaFin" => $fechaFin, "cadena" => "%turno fijo%"));
foreach($turnos as $turno) {
//turnos have 1000 rows
$fecha = date_create($turno["fecha"]);
date_add($fecha, date_interval_create_from_date_string('7 days'));
$anioAuxiliar = 2017;

while(2017 == $anioAuxiliar){
//60 times
$data1 = turno[data1];
$data2 = turno[data2];
...
$fechaAGuardar = (String) $fecha->format('Y-m-d');
$result = $db->query("INSERT INTO turno(fechaAGuardar, data2, data3, data4, data5, data6, data7, data8) VALUES(:fechaAGuardar, :data2, :data3, :data4, :data5, :data6, :data7, :data8)",
array("fechaAGuardar" => $fechaAGuardar, "data2" => $data2, "data3" => $data3, "data4" => $data4, "data5" => $data5, "data6" => $data6, "data7" => $data7, "data8" => $data8));

date_add($fecha, date_interval_create_from_date_string('7 days'));
$anioAuxiliar = (int) $fecha->format("Y");
}

$cantidad_turnos = $cantidad_turnos + 1;
}

此 php 使用 phpmyadmin 托管。

所以我的问题是:

这是插入 60,000 行的最佳方式?

我们是否应该考虑另一个约束条件? (例如:phpmyadmin 不允许您插入那么多行)

谢谢你的帮助,欢迎任何建议

//编辑//

插入数据发生变化,我们必须插入日期时间,并且对于每个循环,我们必须添加最后插入日期的 7 天。所以我们不能使用 insert 和 select

最佳答案

正如评论中描述的一群人,如果此数据位于同一服务器/数据库中,则 INSERT/SELECT 是可行的方法。根本不需要使用 PHP。您的年份评论可以是handled with DATE_ADD .

无论如何,如果有任何其他需求并且您不会使用 PHP,请考虑使用 Bulk Data Loading .

分析您的代码,最重要的提示 是:不要使用多个INSERT INTO TABLE 表达式。每个 INSERT INTO 都会导致数据库往返,事情会变得非常慢。取而代之的是,用一个 INSERT INTO 连接多个值(来自链接的示例):

INSERT INTO yourtable VALUES (1,2), (5,5), ...;

祝你好运!

关于php - 从 PHP 插入 60000 行 Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41061654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com