【发布时间】:2013-04-24 15:51:42
【问题描述】:
将数据库结果集存储在用户会话中,而不是在每次页面加载时从数据库中重新加载它是一个合理/负责任的想法吗?我知道在服务器上的缓存文件中缓存生成的 HTML 代码的可用性,但在我看来这有太多的便利问题。
例如,在购物页面上,主导航中的品牌标签有一个下拉菜单,其中列出了网站上当前有产品的所有品牌。查询已经过优化,但它仍然必须在每次页面加载时运行。而不是这样做,我想将结果集保存在用户的会话中,因此每个会话只加载一次品牌。
或者,我可以为 subnav 生成 HTML 代码并将其存储在服务器上的缓存文件中。如果将数组存储在会话中的想法对服务器的性能没有好处,那么我可能会看到过去的便利问题。
感谢大家的帮助!
【问题讨论】:
-
而不是将数据缓存到会话您应该使用
memcache或一些简单的文件系统缓存 - 因此将数据存储到将被刷新的文件中,例如每 10 分钟一次。然后,您的简单缓存将只从文件中读取序列化数据,或者如果文件太旧则刷新文件......嗯?
标签: php mysql arrays performance session