我的问题确实围绕着大量数据的重复使用。
我有大约 50mb 的数据需要在单个 php 页面执行期间重复交叉引用。使用带有表连接的 sql 查询最容易解决此任务。问题是我需要在很短的时间内处理大量数据以及执行此操作所需的查询数量。
我目前正在做的是将每个表的相关部分(通常超过 30% 或 10k 行)转储到一个数组中并循环。表连接总是在一个字段上,所以我建立了一个非常基本的“索引”来识别哪些行是相关的。
该系统工作。它已经在我的生产环境中使用了一年多,但现在我正试图从中挤出更多的性能。在我正在分析的一个特定页面上,第二高的总时间归因于循环通过这些数组的增量线。它的命中数为 130 万,总执行时间为 30 秒。这代表了大约 8200 个 sql 查询将执行的工作以实现相同的结果。
我正在寻找的是其他有过这种情况的人。我真的不敢相信我是第一个拥有大量需要用 PHP 处理的数据的人。
谢谢!
非常感谢在这里提供一些建议的每个人。看起来这里并没有像我希望的那样真正的银弹。我想我最终要做的是混合使用 mysql 内存表和某些版本的分页内存缓存。