我想使用某些条件从三个表中检索数据,然后在另外三个表中插入/更新。这是一个非常简单的过程,其脚本是用php开发的。但问题是从每个表中检索到的记录是 100k+。PHP 脚本仅在少量记录的情况下运行,并对大数据给出超时错误。谁能建议如何解决这个问题。所有三个表数据都需要在运行时获取。下面是我的 php 脚本,它给出了超时错误switch($action){ case 'tequipebudget': $oldPresta = budPrestaDataTransfer::getOldPresta('tequipebudget'); $budProviderBudget = budPrestaDataTransfer::updatebudProviderBudget($oldPresta, 'budproviderbudget', 3); break; case 'tequipebudgetjum': $oldPrestaJum = budPrestaDataTransfer::getOldPresta('tequipebudgetjum'); $budProviderBudgetJum = budPrestaDataTransfer::updatebudProviderBudget($oldPrestaJum, 'budproviderbudgetjum', 3); break; case 'tequipebudgetavhisto': $oldPrestaAvHisto = budPrestaDataTransfer::getOldPresta('tequipebudgetavhisto'); $budProviderBudgetAvHisto = budPrestaDataTransfer::updatebudProviderBudget($oldPrestaAvHisto, 'budproviderbudgetavhisto', 3); break;}static public function getOldPresta($table) { $sql = "SELECT Annee, CodeEntite, CodeProjet, MtBudgetAEquipeKE, projet_id"; if($table == 'tequipebudgetavhisto') { $sql .= " ,avenant_id "; } $sql .= " FROM ".$table." WHERE Annee < 2020 "; $dbObj = budPDO::getInstance(); $prestaList = $dbObj->getAllResults($sql); return $prestaList; }
1 回答
有只小跳蛙
TA贡献1824条经验 获得超8个赞
您可以增加 PHP 设置中的超时时间。
ini_set('max_execution_time','{number of seconds}');
然后您可能还必须增加内存限制。
ini_set('memory_limit', '2GB');
但是最好把大数据逻辑留给数据库。所以如果我是你,我会编写一个存储过程/函数并使用 PHP only exec 执行它
- 1 回答
- 0 关注
- 85 浏览
添加回答
举报
0/150
提交
取消