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

前端之家收集整理的这篇文章主要介绍了在PHP SESSION中缓存数据,还是每次从db查询?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
它是“更好”(更高效,更快,更安全等)到(A)缓存数据,用于$_SESSION数组中的每个页面加载(但仍然查询表以获取标记以重新加载数据),或者(B)每次从数据库加载它?

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

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

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

>文件
>在内存中,例如APC(如果只有1台服务器)
>在内存中,例如使用memcached(如果你有几个服务器)
>如果您的数据需要长时间计算或获得多个数据库查询,则将其缓存在数据库中可能是另一种可能性(意味着只需要一次查询获取,并且计算量更少)

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

>我会确保我只缓存必要的内容
>一旦你只有一些数据要缓存,把它放在会话中应该没问题
>如果你真的拥有那么多用户,你可能会遇到其他一些可扩展性问题,并且最有可能会使用像memcached这样的东西;这意味着你将有一些其他的缓存方式;-)

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

原文链接:https://www.f2er.com/php/134591.html

猜你在找的PHP相关文章