在会话中存储用户对象的php性能问题
我有一个基于用户的web应用程序,我正在组装。系统在登录时创建一个用户对象,然后将其存储在会话数组中。在每个页面上,系统根据存储在数据库中的会话密钥验证会话数据,并检查与用户相关的任何数据是否已更改(用户表中的bool标志)。如果数据已更改,则会重新创建用户对象,否则我将使用存储在会话中的用户对象。它看起来像:在会话中存储用户对象的php性能问题,php,performance,Php,Performance,我有一个基于用户的web应用程序,我正在组装。系统在登录时创建一个用户对象,然后将其存储在会话数组中。在每个页面上,系统根据存储在数据库中的会话密钥验证会话数据,并检查与用户相关的任何数据是否已更改(用户表中的bool标志)。如果数据已更改,则会重新创建用户对象,否则我将使用存储在会话中的用户对象。它看起来像: session_start(); if (isset($_SESSION['name'])) { $flags = get_session_flags($_SESSION['sessi
session_start();
if (isset($_SESSION['name']))
{
$flags = get_session_flags($_SESSION['session_key']);
if (!$flags['valid_session_key'])
{
logout();
redirect_to_home();
}
if ($flags['user_data_changed'])
{
$user = recreate_user_object();
}
else
{
$user = $_SESSION['user'];
}
}
我关心的是php/mysql服务器的性能。在页面加载之间存储用户对象可能会遇到哪些问题?我是否应该总是从数据库中提取新的数据?它是大量信息,包括存储在用户对象中的几个基于活动的对象
谢谢你的帮助
系统在以下位置创建用户对象:
登录,然后将其存储在
会话数组
什么构成用户对象?您将使用多少用户对象?您是否经常需要它提供的所有数据
在每个页面上加载系统验证
针对会话密钥的会话数据
存储在数据库中,并检查
查看是否有任何与用户相关的数据
已更改(中的bool标志)
用户表)
用户数据多久更新一次?如果只在几个页面上更新,那么检查每个页面的加载似乎有点太多。但是,前面的问题仍然适用于重建用户对象的构成。用户对象同时包含个人数据和与用户在站点上的活动相关的对象。一些个人数据和每个活动对象的一部分在每个页面上用作页面导航的一部分。修改检查存储在保存会话密钥的同一个表中,因为管理员能够编辑单个用户的活动相关数据,所以可以执行修改检查。谢谢