gpt4 book ai didi

PHP/MySQL - 从后台运行操作/处理运行时间较长的方法

转载 作者:行者123 更新时间:2023-11-29 10:12:24 25 4
gpt4 key购买 nike

我有一个 PHP 表单,可以将一些数据保存到数据库中。然而,成功插入后,下面的 PHP 函数将执行按“可见”ID 列(在本例中称为 correlativo)排列每个条目。

function ordenar_ids()
{
$sql = "SELECT DISTINCT(DATE_FORMAT(fecha, '%Y')) FROM emergencias ORDER BY fecha";

$results = mysql_query($sql);
$anios = [];
while ($row = mysql_fetch_array($results))
array_push($anios, $row[0]);

foreach($anios as $anio)
{
$sql = "SELECT id_emergencia FROM emergencias WHERE fecha LIKE '".$anio."%' ORDER BY fecha ASC;";
$results = mysql_query($sql);
$correlativo = 1;
while ($row = mysql_fetch_array($results))
{
$sql = "UPDATE emergencias SET correlativo = $correlativo WHERE id_emergencia = '".$row[0]."';";
mysql_query($sql);
$correlativo++;
}
}
return 1;
}

初始(本地)测试是成功的,但是当我们在生产环境中测试时,我们注意到这个过程花费的时间太长(平均约 15 秒),这不利于用户体验。

用户提交表单后是否可以在后台运行此功能?如果不可能,我们如何解决这个问题?

其他数据:

  • 用户不需要此函数的返回值,也不需要此后发生的以下操作。

最佳答案

您无法轻松地在后台运行 mysql 查询。但 xou 可以在后台启动一个新的 php 脚本:http://php.net/manual/de/function.exec.php#86329

但更好的是提高脚本性能本身。我认为,您可以通过使用一个“update ... select”查询来改进它,避免 LIKE % 或使用 mysql 触发器。

关于PHP/MySQL - 从后台运行操作/处理运行时间较长的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50749363/

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