PHP / SQL - 存储用户数据并访问它

时间:2015-10-22 20:39:50

标签: php sql pdo

我目前正致力于优化我的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的说法,这个特定的功能会导致大量的负载(因为它被访问/加载)很多次。

如何以更优化的方式存储我的(或访问)用户数据?

1 个答案:

答案 0 :(得分:0)

可以访问某些服务器端(数据库,会话,缓存等)存储来加载用户详细信息。所以我认为在这种情况下你能做的就是优化存储访问,因为我看不出你如何能够显着改进代码逻辑。

例如,如果查询执行需要花费大量时间,则可以将其结果缓存在memcached或redis中。