Php 更新大型数据集
我可以上传一个包含3000条记录的csv文件,但当我尝试更新时,需要很长时间,这导致请求超时错误 插入:Php 更新大型数据集,php,mysql,sql-update,bulkupdate,Php,Mysql,Sql Update,Bulkupdate,我可以上传一个包含3000条记录的csv文件,但当我尝试更新时,需要很长时间,这导致请求超时错误 插入: $sqlInsert = "INSERT ignore into datanyc (`Symbol`,`Data_date`,`Open`,`High`,`Low`,`Last`,`Volume`) values ('".$column0."','".$dataDate."','".$column[2]."','".$column[3]."',
$sqlInsert = "INSERT ignore into datanyc (`Symbol`,`Data_date`,`Open`,`High`,`Low`,`Last`,`Volume`)
values ('".$column0."','".$dataDate."','".$column[2]."','".$column[3]."',
'".$column[4]."','".$column[5]."','".$column[6]."')";
更新声明:
$date_query="SELECT max(Data_date) as Prev_date FROM datanyc WHERE Data_date < '$dataDate' ";
$date_result=mysqli_query($con,$date_query);
$fetch=mysqli_fetch_array($date_result);
$Prevdate=$fetch['Prev_date'];
$temp="SELECT Last as last, Symbol as symbol FROM datanyc WHERE Data_date = '$Prevdate'";
$date1=mysqli_query($con,$temp);
while($row=mysqli_fetch_array($date1))
{
//array_push($symbol,$row['symbol']);
//array_push($last,$row['last']);
$qry="UPDATE datanyc SET Prevclose = '".$row['last']."' WHERE Symbol LIKE '".$row['symbol']."' AND Data_date= $dateDate";
mysqli_query($con,$qry);
//$date=$row['max(Data_date)'];
}
$date\u query=“选择max(Data\u date)作为datanyc中的上一个日期,其中Data\u date<'dataDate';
$date\u result=mysqli\u查询($con,$date\u查询);
$fetch=mysqli\u fetch\u数组($date\u result);
$Prevdate=$fetch['Prev_date'];
$temp=“选择Last作为Last,Symbol作为datanyc中的Symbol,其中Data_date='$Prevdate';
$date1=mysqli_查询($con,$temp);
while($row=mysqli\u fetch\u数组($date1))
{
//数组推送($symbol,$row['symbol']);
//数组推送($last,$row['last']);
$qry=“UPDATE datanyc SET Prevclose=”“$row['last']”。“WHERE Symbol LIKE”“。$row['Symbol']”和Data_date=$dateDate”;
mysqli_查询($con,$qry);
//$date=$row['max(数据_-date)';
}
首先,在符号
和数据_日期
列上添加索引
其次,将更新查询更改为一个查询,这样就不需要像这样在循环中更新:
$sql=“更新
datanyc作为
a.symbol=b.symbol上的内部联接数据nyc b
b.Data_date=“$Prevdate”
设置a.Prevclose=b.last”;
$date1=mysqli_查询($con,$sql);
首先,在符号
和数据_日期
列上添加索引
其次,将更新查询更改为一个查询,这样就不需要像这样在循环中更新:
$sql=“更新
datanyc作为
a.symbol=b.symbol上的内部联接数据nyc b
b.Data_date=“$Prevdate”
设置a.Prevclose=b.last”;
$date1=mysqli_查询($con,$sql);
为什么要尝试通过PHP提取所有数据?通过查询在MySQL上执行所有更新操作,无需将数据选择到PHP中。因为我正在尝试创建一个完整的网站。当您想要制造汽车并驾驶时,您需要组装汽车并驾驶,您不需要将汽车部件拖到目的地……我尝试使用内部连接进行单个查询,但遇到了相同的问题为什么您要尝试通过PHP提取所有数据?通过查询在MySQL上执行所有更新操作,无需将数据选择到PHP中。因为我正在尝试创建一个完整的网站。当您想要制作一辆汽车并驾驶时,您需要组装汽车并驾驶,您不需要将汽车部件拖到目的地……我尝试使用内部联接进行单个查询,但遇到了相同的问题