首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于在php脚本中释放内存的问题

问关于在php脚本中释放内存的问题
EN

Stack Overflow用户
提问于 2009-08-02 23:25:09
回答 6查看 1.7K关注 0票数 1

我刚在脚本里看到了这个

代码语言:javascript
复制
mysql_free_result($rawdb);

我在某个脚本上看到过它,它运行mysql查询并将结果保存到数组中,在添加到数组后,它运行的内存应该是mysql查询使用的空闲内存。

我只是想确认一下,这样做是不是一个好主意?我有几个mysql查询,它们返回一个大的结果,并保存到一个数组中,我应该在它之后运行代码吗?

另外,在注重性能的环境中,在使用完大型会话和变量后取消设置它们是否是一种好的做法?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-08-02 23:29:34

从manual

只有当您担心返回大型结果集的查询使用了多少内存时,才需要调用

mysql_free_result()。所有相关的结果内存将在脚本执行结束时自动释放。

票数 0
EN

Stack Overflow用户

发布于 2009-08-02 23:29:00

我不会担心的。所有结果资源都在脚本结束时被释放,除非您在使用大型结果集进行查询时遇到内存问题,否则这种差异可以忽略不计。

也就是说,如果我阅读您的代码并看到mysql_free_result,我肯定知道您不会在代码中的任何地方使用该资源,因此它可以增加一点可读性……

票数 2
EN

Stack Overflow用户

发布于 2009-08-03 00:05:04

我认为将数据抽象层放入数据抽象层是一个很好的实践,因为这会使它成为内存处理的好公民。特别是很多PHP代码都不是这样的。:-/

PHP 4中的内存使用问题要比5中严重得多,但这仍然是一个问题。如果您必须不断增加PHP脚本允许的最大内存(默认值为8Mb,但我使用的大多数环境都将其设置为64Mb),那么您可能应该考虑一下脚本是如何使用和过度使用内存的。使用mysql_free_result()是这个武器库中的一部分,但单独使用它是相当无意义的。如果使用mysql_unbuffered_query()并在使用mysql_fetch()检索时处理每一行,则可以高效地处理大型数据集。我已经看到,在使用这种方法重写脚本时,处理数据的能力会大大提高。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1220154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档