我目前正致力于优化我的PHP脚本。我有一个名为users
的表,我在其中存储用户信息,例如用户名,电子邮件,密码等。
然后我有了这个(在每个页面加载时调用):
if(isset($_SESSION['user']) && is_array($_SESSION['user']))
$userdata=$user->getUser($_SESSION['user']['id']);
(会话是在登录时创建的。)
getUser()
函数看起来像这样:
function getUser ($id)
{
global $dbh;
$stmt = $dbh->prepare("SELECT * FROM users WHERE id=:id");
$stmt->bindParam(':id', $id);
$stmt->execute();
$udata = $stmt->fetch();
if(count($udata) == 0)
return false;
return $udata;
}
虽然我开始看到服务器负载增加,因为越来越多的用户注册并开始使用我的网站。根据New Relic的说法,这个特定的功能会导致大量的负载(因为它被访问/加载)很多次。
如何以更优化的方式存储我的(或访问)用户数据?
答案 0 :(得分:0)
可以访问某些服务器端(数据库,会话,缓存等)存储来加载用户详细信息。所以我认为在这种情况下你能做的就是优化存储访问,因为我看不出你如何能够显着改进代码逻辑。
例如,如果查询执行需要花费大量时间,则可以将其结果缓存在memcached或redis中。