Jim*_*ein 7 php mysql php-internals
PHP中不同的MySQL游标如何管理内存?我的意思是,当我创建一个MySQL查询来检索一个大的结果集,然后获取MySQL资源时,查询检索的数据有多少存储在本地内存中,以及如何检索更多结果?光标是否自动获取所有结果,并在我使用fetch_array或是缓冲系统迭代资源时将它们提供给我?
最后,mysql中不同驱动程序的游标是否实现不同?有几个MySQL的驱动PHP可用mysql,mysqli,pdo等他们是否都遵循同样的做法?
这取决于您要求 php 做什么,例如 mysql_query() 获取所有结果集(如果是 500 兆字节,再见);如果你不想要,你可以使用:
http://php.net/manual/en/function.mysql-unbuffered-query.php
PDO, MySQLI 似乎有其他方法可以做同样的事情。
根据您的查询,结果集可能在数据库端具体化(如果您需要排序,那么排序必须在您获得第一行之前完成)。
对于不太大的结果集,通常最好一次全部获取,这样服务器可以尽快释放使用过的资源。
| 归档时间: |
|
| 查看次数: |
4533 次 |
| 最近记录: |