在PHP中,当我们使用mysql_query时,内存中会发生什么
发布时间:2020-12-13 14:02:20 所属栏目:PHP教程 来源:网络整理
导读:我曾经使用 mysql_query获取大量的数据,然后逐个迭代结果来处理数据.例如: $mysql_result = mysql_query("select * from user");while($row = mysql_fetch_array($mysql_result)){ echo $row['email'] . "n";} 最近我看了几个框架,并意识到他们将所有数据
我曾经使用
mysql_query获取大量的数据,然后逐个迭代结果来处理数据.例如:
$mysql_result = mysql_query("select * from user"); while($row = mysql_fetch_array($mysql_result)){ echo $row['email'] . "n"; } 最近我看了几个框架,并意识到他们将所有数据读取到内存中的数组并返回数组. $large_array = $db->fetchAll("select * from user"); foreach($large_array as $user){ echo $user['email'] . "n"; } 我想知道每种方法的利弊.在我看来,加载内存中的所有内容都是灾难的秘诀,如果你有一个很长的项目列表.但是再一次,同事告诉我,mysql驱动程序不得不将结果集放在内存中.我想得到一个明白问题是关于表演的人的意见.请不要对代码发表评论,我只是作为这个帖子的例子. 谢谢
的确,MySQL库“通常”会获取客户端内存中的所有数据.它通常使用
mysql_store_result() 这样做.您可以使用LIMIT关键字分解上面的过大查询,但是由于可能会在其间进行更改,因此数据不一致的风险.你可以关心这个使用锁.
另一种方法可能是使用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |