我有这个问题我无法解决。我将序列化格式的数据缓存在一个文件中,由php5读取,并在请求时进行反序列化。现在一些数据文件大100MB-300MB。我已经在其中序列化了对象。
问题是检索此数据将永远完成,如果它已经完成,目前它失败并达到90秒的最大执行时间,将其设置得更高并不是一个好的解决方案。我知道这绝对是一个“代码更好”的想法所以我在这里问。
我想过以小部分检索序列化数据,但不幸的是,序列化数据意味着没有行结尾。也许这是一个noob问题,但我很累。
谢谢
编辑:我自己解决了这个问题。谢谢各位的回应。这就是我做到的,不是最好的,而是2020A.D。之前的临时解决方法。我“分页”了缓存文件。
突变码是如此for loop that jumps for 10,000 rows
$dataN = array_splice($mydata,N,10000,true)
fputs($myfileN,serialize($dataN))
end
编辑2: 因此,基本思想是减小文件大小以加快进程。我通过按年/月分割文件来缩小序列化/反序列化。序列化数据是电子邮件标题,因此我更改了序列化以相应地拆分数据并以相同方式读回。对于小文件大小,一切都是至少可操作的(这是我的工作)最终,现在我将更容易迁移到数据库并重做这个东西。 无论你是什么样的(你在IRC / usenet中都是常见的错误评论),有时你必须处理你所得到的并充分利用它。
希望它可以帮助别人。
答案 0 :(得分:0)
治愈变得比疾病更糟的确切病例。 一个完美的例子向我们展示了为什么过早优化 邪恶。
感谢您为社区提供如此优秀的例子。
答案 1 :(得分:0)
请参阅我原来的问题以获得答案。它已经解决了我的情况。