Эффективность подключения PHP PDO

У меня есть приложение, которое использует PDO для подключения к соответствующей базе данных MySQL. Я вызываю строку подключения каждый раз, когда делается запрос. Обратите внимание, я использую подготовленные заявления. Мой метод строки подключения (версия dev) выглядит следующим образом...

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();
    }
}

В последнее время трафик моего приложения значительно вырос, и я замечаю, что моему приложению не удается установить большое количество соединений. Так что улов срабатывает гораздо чаще, чем обычно. Я предполагаю, что это потому, что мое приложение не очень эффективно при подключении к базе данных.

Было бы разумно для меня реализовать постоянные соединения? Или я должен реструктурировать свой код, чтобы запрашивать меньше соединений. Или это было бы проблемой с количеством соединений, которые разрешают мои базы данных MySQL? Максимум в настоящее время установлен на 151, который я считаю по умолчанию.

Любая помощь или совет будет высоко ценится.

1 ответ

Решение

У меня нет полного кода приложения... Но похоже, что для каждого запроса SQL вы устанавливаете новое соединение. Если это так - вы можете реализовать шаблон Singleton для подключения к БД.

Другой способ уменьшить количество соединений с БД - добавить кеширование DBH. Просто сохраните его в сеансе и при следующем посещении используйте уже живое соединение.

Другие вопросы по тегам