2

我有一个使用 PDO 连接到它的相关 MySQL 数据库的应用程序。每次发出请求时,我都会调用我的连接字符串。注意我使用准备好的语句。我的连接字符串方法(开发版)看起来像这样......

protected function ConnectionString()
{

    try {
        $dbh = new PDO("mysql:host=".__DB_HOSTNAME.";dbname=".__DB_NAME, __DB_USERNAME, __DB_PASSWORD);

        return $dbh;
    }
    catch(PDOException $e)
    {
        echo $e->getMessage();
        die();
    }
}

最近我的应用程序的流量大幅增加,我注意到我的应用程序无法建立很多连接。因此,Catch 的触发次数比正常情况要多得多。我认为这是因为我的应用程序在连接到数据库时效率不高。

实现持久连接对我来说是否明智?或者我应该重组我的代码以减少请求的连接。或者这会是我的 MySQL 数据库允许的连接数的问题吗?最大值当前设置为 151,我认为这是默认值。

任何帮助或建议将不胜感激。

4

1 回答 1

2

我没有完整的应用程序代码......但似乎对于每一个 SQL 查询,你都会建立新的连接。如果是这样 - 你可以实现数据库连接的单例模式

减少 DB 连接的另一种方法是添加 DBH 缓存。只需将其存储在会话中,并在下次访问时使用已经存在的连接。

于 2012-09-06T12:42:16.183 回答