我想知道,在多次使用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') 有任何问题问题左右)。如果是的话,他们是什么?
答案 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')
是一个坏主意。尝试使用分页来避免一次获取所有数据。