gpt4 book ai didi

PHP - 每次迭代查询单个值或在开始时获取所有值并从数组中检索?

转载 作者:可可西里 更新时间:2023-11-01 12:41:57 27 4
gpt4 key购买 nike

我有一个看起来像这样的函数:

//iteration over scales
foreach ($surveyScales as $scale)
{
$surveyItems = $scale->findDependentRowset('SurveyItems');

//nested iteration over items in scale
foreach ($surveyItems as $item)
{
//retrieve a single value from a result table and do some stuff
//depending on certain params from $item / $scale
}
}

问题:是对内部 foreach 中的每个值执行数据库查询更好,还是将所有结果值提取到数组中并从那里获取值更好?

最佳答案

返回 12 条数据的一个查询比返回 1 条数据的 12 个查询快 12 倍。

哦,永远不要把 SQL 放在循环中,它总是会导致灾难。

根据您的应用程序的工作方式,可能会为每个查询打开一个新连接,这尤其糟糕,因为每个数据库服务器对连接数都有限制。然后还要意识到每个用户都会发生这种情况,因此 5 个用户有 50 个查询,并且在任何给定时刻你已经有 250 个查询。但是,即使所有查询确实只共享 1 个连接,您也会对数据库服务器造成 X 倍的负担,使其他所有内容、每个页面的速度都变慢,因为用户占用了该页面上的数据库服务器,而每个人都必须共享。

我过去曾看到整个应用程序因这 1 个设计缺陷而失败,只是不要这样做。

关于PHP - 每次迭代查询单个值或在开始时获取所有值并从数组中检索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/356778/

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