我想比较循环(foreach)和在超过 1000 行或更大行中选择具有相同条件的数据之间的性能。
示例
Solution 1
$query1 = "select * from table
where table.name LIKE 'like-name'
and table.age = 1
and table.address = 'USA' ";
...处理一些数据库...
然后返回 $results 我想要的超过 100 或 1000 行。
Solution 2
$query2 = "select * from table where table.name LIKE 'like-name' ";
...处理一些数据库...
然后 $results 和我使用 foreach 来过滤这样的结果
$results2 = [];
foreach ($results as $result) {
if($result['age'] == 1 && $result['address'] == 'USA') {
$results2 = $result;
}
}
return $results2;
然后我得到我想要的结果
那么,什么方案性能更好呢? :)
最佳答案
大多数情况下,第一个解决方案会更快,因为它减少了将从 DB 传输到 PHP 的行数。此外,如果有年龄和地址的索引,它可能会更快(但取决于源数据)。
使用 MySQL 的另一个优点是缓存数据,因此有可能有人刚刚运行了相同的查询而 MySQL 可以返回准确的数据——显然这会提高性能。
关于php - 在 PHP 中比较 1000 行的循环(foreach)和查询数据库 mysql 之间的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43953065/