PHP';s的MySQL游标实现及其如何管理内存

PHP';s的MySQL游标实现及其如何管理内存,php,mysql,php-internals,Php,Mysql,Php Internals,PHP中不同的MySQL游标如何管理内存?我的意思是,当我进行一个MySQL查询来检索一个大的结果集,并取回MySQL资源时,该查询检索的数据中有多少存储在本地内存中,如何检索更多的结果?光标是否会自动获取所有结果,并在我使用fetch\u array遍历资源时将结果提供给我,或者它是一个缓冲系统 最后,mysql中不同驱动程序的游标实现是否不同?PHP有几个MySQL驱动程序可用,MySQL,mysqli,pdo,等等。它们都遵循相同的实践吗?这取决于您要求PHP做什么,例如MySQL\u q

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


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

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

PDO,MySQLI似乎有其他方法做同样的事情

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

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