加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 18:06:37 所属栏目:PHP教程 来源:网络整理
导读:它是“更好”(更高效,更快,更安全等)到(A)缓存数据,用于$_SESSION数组中的每个页面加载(但仍然查询表以获取标记以重新加载数据),或者(B)每次从数据库加载它? 我正在使用缓存方法(A),但我担心有数百个用户,内存可能成为一个问题?它只是简单的数据,如名字,姓
它是“更好”(更高效,更快,更安全等)到(A)缓存数据,用于$_SESSION数组中的每个页面加载(但仍然查询表以获取标记以重新加载数据),或者(B)每次从数据库加载它?

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

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

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

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读