9

PHP 中不同的 MySQL 游标如何管理内存?我的意思是,当我进行一个检索大型结果集的 MySQL 查询并取回 MySQL 资源时,查询检索到的数据有多少存储在本地内存中,以及如何检索到更多结果?游标是否会自动获取所有结果,并在我使用缓冲系统遍历资源时将它们提供给我fetch_array

最后,mysql中不同驱动程序的游标是否以不同的方式实现?有几个用于 PHP 的 MySQL 驱动程序,mysql, mysqli,pdo等。它们都遵循相同的做法吗?

4

1 回答 1

5

这取决于你要求 php 做什么,例如 mysql_query() 获取所有结果集(如果是 500 兆字节,再见);如果你不想这样,你可以使用:

http://php.net/manual/en/function.mysql-unbuffered-query.php

PDO、MySQL我似乎有其他方法可以做同样的事情。

根据您的查询,结果集可能会在数据库端实现(如果您需要排序,则必须在获得第一行之前完全完成排序)。

对于不太大的结果集,通常最好一次获取所有结果集,这样服务器可以尽快释放使用的资源。

于 2011-05-05T14:56:41.823 回答