使用ini_set时遇到的问题('memory_limit',' - 1')

时间:2017-04-18 05:44:27

标签: php ini-set

我想知道,在多次使用ini_set('memory_limit', '-1')时是否有任何问题(对服务器不好)?

我之所以需要知道这一点,我现在正在使用连接查询的项目很高。我们只获取所需的数据以避免最大负载,但在某些情况下,数据超过20000+记录,执行死亡&显示500 (Internal Server Error)

我知道错误500可能是很多其他问题的原因,所以我已经检查了它&发现原因是因为PHP执行内存限制超过(256M)。当我在代码上设置ini_set('memory_limit', '-1')时,查询执行正确。

以上说明只是一种情况/场景,无需考虑&是的,我同意使用ini_set('memory_limit', '-1')是一种不好的做法。所以,我的问题显然是要知道 在项目的不同部分(如服务器)上多次使用ini_set('memory_limit',' - 1') 有任何问题问题左右)。如果是的话,他们是什么?

1 个答案:

答案 0 :(得分:0)

ini_set将在脚本执行期间设置配置选项,并将在脚本结束时恢复。

所以ini_set只适用于当前的php进程。下次请求到来时,新的php进程将首先阅读php.ini以获取memory_limit,然后您可以使用ini_set将值设置为-1。

您可以使用ini_get检查memory_limit以避免多次设置memory_limit,并检查ini_set的返回值以确保成功。

使用ini_set('memory_limit', '-1')是一个坏主意。尝试使用分页来避免一次获取所有数据。