将数据存储在全局/会话变量与MySQL查询中

时间:2013-08-18 17:23:07

标签: php mysql arrays

关于组织网站的一般PHP问题:为了提高效率,将MySQL查询中的数据存储到全局数组中,或者每次需要数据时创建新查询是否更好?我正在考虑一个面向体育统计的网站,其中包含大量不一定经常变化的数据。 我听说将数据存储到数组中要高效得多,但我不知道全局变量只是在当前PHP页面的范围内是全局的。理想情况下,我想在启动服务器后填充所有数组。我应该使用会话变量吗?我没有听说有人这样做过。

1 个答案:

答案 0 :(得分:0)

会话变量无法解决问题,因为会话也不是全局的(除非您通过为所有访问者设置相同的session_id来破解它)。

如果您有大量流量并且需要保存查询,请使用memcached或redis之类的缓存服务器。

如果无法安装memcached或redis,则可以创建包含数组的PHP文件,并将其包含在脚本中 - 例如使用文件缓存。这种方法的坏处是你将使用大量内存 - 任何访问者都应该通过任何PHP脚本在内存中读取整个数据。因此,如果数据库不是瓶颈,最好保留查询。