【问题标题】:PHP array crashesPHP数组崩溃
【发布时间】:2016-07-08 01:23:10
【问题描述】:

不是真正的 PHP 程序员,但由于某种原因,我必须修复一些崩溃的 PHP 函数。

主函数根据数据库检查 CSV/XML 文件的内容。只要数据库包含约 100,000 个或更少的产品,一切都很好。

如果数据库包含 >100,000 个产品,PHP 函数会崩溃。

出于性能原因,一些数据库内容被加载到行对象的关联数组中。该数组将包含与数据库中产品相同数量的对象。

1) 当数组变得太大时,函数看起来会崩溃。有没有比关联数组更好的方式来存储数据库的内容?

我知道我当时只能检查数据库中的一种产品,但出于性能原因,这行不通。

2)如果数组是唯一的选择,我怎样才能增加内存量,以便我可以处理这样的大数组。

3) 当 PHP 函数崩溃时,它只是停止运行。不会抛出异常。

有没有办法查看到底出了什么问题?

谢谢!

【问题讨论】:

  • 一次检查 1000 个产品怎么样?
  • 你确定你开启了error_reporting
  • 另外,您是否可以重构该函数以在数据库查询语言中执行它在 PHP 中所做的任何事情? (所以将文件内容插入到数据库的临时表中)
  • 当时无法检查 1000 个产品,CSV/XML 文件中的每个产品都需要与数据库中的所有产品进行检查(是否存在等)。跨度>
  • 将文件的内容加载到临时表中可能是一种选择,但这需要大量的重构。更喜欢 PHP 解决方案,所以我们不需要重构很多代码。

标签: php arrays memory


【解决方案1】:

默认情况下,PHP 的内存限制为 128M。你可以这样改变它:

ini_set("memory_limit", "256M");

您也可以尝试在数据库中创建一个函数。

【讨论】:

  • 内存当前设置为512M。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多