当前位置:  开发笔记 > 编程语言 > 正文

在PHP SESSION中缓存数据,还是每次从db查询?

如何解决《在PHPSESSION中缓存数据,还是每次从db查询?》经验,为你挑选了1个好方法。

它是"更好"(更高效,更快,更安全等)到(A)缓存数据,用于$ _SESSION数组中的每个页面加载(但仍然查询表以获取标记以重新加载数据),或者(B)每次从数据库加载它?

我正在使用缓存方法(A),但我担心有数百个用户,内存可能会成为一个问题?它只是简单的数据,如名字,姓氏,生日等.

无论使用哪种方法,仍然会运行查询.思考?



1> Pascal MARTI..:

如果您的数据在每个页面上使用,并且对所有用户都相同,我不会将其缓存在$ _SESSION中(这意味着为每个用户提供不同的数据副本),但还有另一种机制,例如:

文件

在内存中,例如APC(如果只有1个服务器)

在内存中,例如使用memcached(如果你有几个服务器)

如果您的数据需要长时间计算或者要获取多个数据库查询,那么在数据库中缓存它可能是另一种可能性(意味着只需要一次查询来获取,并且计算量更少)


如果您的数据对于每个用户来说都不相同(在您的情况下似乎就是这种情况,因为您正在缓存名称,生日,......):

我会确保我只缓存必要的内容

一旦你只有一些数据要缓存,把它放在会话中就应该没问题

如果你真的拥有那么多用户,你可能会遇到其他一些可扩展性问题,并且最有可能会使用像memcached这样的东西; 这意味着你将有其他一些缓存方式;-)

作为旁注:如果你一遍又一遍地做同样的查询,你的数据库服务器应该自己缓存它(对于MySQL,它会进入" 查询缓存 "); 所以,我认为它不会像你想象的那么糟糕 - 即使没有那么多优化^^

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有