我正在编写一个 PHP 函数,该函数需要遍历一个指针数组,并为每个项目拉入该数据(无论是来自 MySQL 数据库还是平面文件)。有没有人有任何优化这个的想法,因为可能有成千上万的迭代?
我的第一个想法是拥有一个我处理的缓存数据的静态数组,任何修改只会更改该缓存数组,然后最后我可以将它刷新到磁盘。但是,在超过 1000 个项目的循环中,如果我只在数组中保留大约 30 个,这将毫无用处。每个项目都不是太大,但内存中的 1000 多个项目太多了,因此需要磁盘存储。
数据只是 gzip 压缩的序列化对象。目前我正在使用数据库来存储数据,但我想也许平面文件会更快(我不关心并发问题,我不需要解析它,只需解压缩和反序列化)。我已经有一个自定义迭代器,它将一次拉入 5 个项目(以减少数据库连接)并将它们存储在此缓存中。但同样,当我需要迭代数千个时使用 30 的缓存是相当没用的。
基本上我只需要一种方法来快速迭代这些项目。