gpt4 book ai didi

php - 嵌套的 Foreach 循环花费太多时间

转载 作者:行者123 更新时间:2023-11-30 22:14:54 26 4
gpt4 key购买 nike

我正在使用 Nested Foreach 循环将数据存储在 mysql 中。但是它花费了太多的处理时间。如何减少最大执行时间。

foreach ($results as $r) {
mysqli_query($con,"insert into commercial values('".mysqli_real_escape_string($con,$r['MST_MLS_NUMBER'])."')");
$val=1;
$objects = $rets->GetObject('Property', 'Photo', $r['MST_MLS_NUMBER'], '*', 0);
foreach ($objects as $pho) {
mysqli_query($con,"insert into cmtval values('".mysqli_real_escape_string($con,$r['MST_MLS_NUMBER'])."')");
}
}

最佳答案

你应该使用 bulk insert

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

通过 foreach 循环,您应该首先执行查询,然后使用 mysqli_query 执行查询。

$query1 = "insert into commercial values ";
$query2 = "insert into cmtval values ";
foreach ($results as $r)
{
$query1 .= "('" . mysqli_real_escape_string( $con, $r['MST_MLS_NUMBER']) . "'), ";

$val=1;
$objects = $rets->GetObject('Property', 'Photo', $r['MST_MLS_NUMBER'], '*', 0);
foreach ($objects as $pho)
{
$query2 .= "('" . mysqli_real_escape_string( $con, $r['MST_MLS_NUMBER']) . "'), ";
}
}

mysqli_query($con, $query1);
mysqli_query($con, $query2);

我还没有测试过代码。测试并让我知道是否缺少任何东西。批量更新减少了一些时间。

此外,如果您在单个查询中在数据库中保存了太多数据,并且如果索引太多,则插入数据需要时间。

关于php - 嵌套的 Foreach 循环花费太多时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38736783/

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