繁体   English   中英

Symfony2在每次页面加载时将数据存储在会话中还是数据库调用中

[英]Symfony2 storing data in session versus database calls every page load

我有一个基于Symfony 2构建的网站,该网站基本上由各种应用程序组成。 选择一个应用程序后,我将该应用程序的ID存储在会话变量中。 然后,对于该应用程序的每个页面加载,都会查询数据库以获取该应用程序的详细信息。

仅将应用程序详细信息存储在会话变量中,而不是仅将应用程序ID存储在会话变量中,会更有效吗?

以这种方式存储应用程序详细信息的不利之处是什么,我是否需要担心任何安全风险?

非常感谢。

我不建议完全在会话中存储应用程序编号。 由于所有请求都变为private因此您的响应将取决于SESSION值,因此您将无法使用该方法使用共享HTTP缓存http://symfony.com/doc/current/book/http_cache.html#public-vs-private-respons

如果将应用程序编号移至url或标头等,则将有大量空间用于优化。

将数据库用于获取应用程序信息是一种很好的做法,因为您可以为该查询启用主义的结果​​缓存,以使它们完全不影响应用程序性能。 http://doctrine-orm.readthedocs.org/en/latest/reference/caching.html#result-cache

使用会话存储app_id是不好的做法,但是使用会话存储所有应用程序信息的情况更糟,因为session_ids的数量很多,并且您将存储很多冗余信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM