在另一个问题中,我说我正在运行一个 php 脚本,该脚本从 mysql 数据库中获取 150 行数据,然后对该数据进行一些计算,然后将其放入一个数组中(120 个元素,每个元素包含 30 个数组,或者总共大约 3600 个元素)。需要“结果”数组,因为我用数据创建了一个图表。这个脚本工作正常。
我想将我的脚本扩展到更密集的数据集(这将提供更好的结果)。数据集有 1700 行,最终会得到一个包含 1340 个元素的“结果”数组,每个元素包含 360 个数组,或者总共大约 482,400 个元素。问题是,我已经尝试过这个并想出了一些令人发指的内存错误。
正如在我发布的上一个问题中向我描述的那样,该结果数组的大小可能会压倒服务器内存
在您的第二个较大样本中,它将是数组(1700,1699)。每个元素 144 字节,即 415,915,200 字节,略高于 406Meg + 剩余存储桶空间,仅用于保存计算结果。
我不熟悉处理这个问题的典型方法。我正在考虑更大的数据集,在运行时对 1340 个结果数组元素中的每一个进行序列化和 base64_encode 编码(或者每 10 或 20 个。1340 db 调用可能太多了),并上传到 SQL 服务器,以及取消设置结果数组以释放内存。然后我可以通过在数据库中查询特定信息来制作我的报告和图表,而不是将它们全部放在一个巨大的数组中。
还有其他方法吗?