Эффективность подключения 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. Просто сохраните его в сеансе и при следующем посещении используйте уже живое соединение.