为了账号安全,请及时绑定邮箱和手机立即绑定

当使用MySQL存储session数据时,使用db查询而不是session会更快吗?

当使用MySQL存储session数据时,使用db查询而不是session会更快吗?

PHP
倚天杖 2023-07-01 10:10:54
我使用指南将会话请求重定向到数据库调用,以便我可以在前端和后端 PHP 上维护会话(本指南:来自:https://culttt.com/2013/02/04/how-to-save-php -sessions-to-a-database/),但这给我留下了一个问题。我可以看到会话数据以 JSON 形式存储在数据库中。据我所知,这意味着每次更新 $_SESSION 数据时,都会调用数据库并来回发送整个 $_SESSION var。通常,我会将内容存储在 $_SESSION 中以减轻对数据库的调用,但是对于数据库会话,这似乎会使情况比正常情况更糟糕。或者仅在读取而不是写入时使用 $_SESSION 仍然相当快/内存?例如,通常我会得到这样的用户:function get_user(userID) {    if ($_SESSION['users'][userID]) return $_SESSION['users'][userID];    $db = db_connect();    $db->exec("SELECT * FROM users WHERE userID = ?",[userID]);    $temp = $_SESSION['users'][userID] = $db->get_row();    return $temp;}重点是,现在每次都进行数据库调用会更快吗?
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超12个赞

如果您只有几千个用户,您不会注意到使用上有太大差异。但是,如果您谈论的是数百万用户,则可能会开始显示不断获取/存储会话数据到数据库表的情况(大约需要额外的半秒,具体取决于您的服务器)。– 不可思议的帽子


查看完整回答
反对 回复 2023-07-01
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信