使用大型数据库,并且需要缓存一个值。该值是从嵌套的MySQL查询计算的 - >将结果加载到PHP对象中 - >然后缓存。需要缓存的值的数量是n ^ 2和n~ = 40000.要为所有n创建缓存,需要几天,而且速度太慢。
很自然地,我考虑使用PHP multi_curl运行并行进程。但后来我意识到CPU负载也不完全可以忽略不计。 load result into PHP object
最终占用了相当多的CPU。我们可以在服务器无法再处理它之前运行的数字上行并行进程是不够的。
除了升级服务器之外,还有其他建议我如何运行这个一次性脚本在合理的时间内为O(40000 ^ 2)值填充缓存?
有问题的SQL查询有以下几点:
SELECT value FROM table_a WHERE id = $x
AND value IN
(SELECT value FROM table_a WHERE id = $y)