Стоит ли кэшировать соединение MySQL в PHP?

Есть ли недостатки в кэшировании соединения MySQL?

Например,

$mysqli = new mysqli(params);
apc_store('mysqli', $mysqli);

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

Я ничего не нашел, прибегая к помощи гугла, поэтому просто удивляюсь, что я что-то пропустил.

Спасибо за ваше время.

1

Решение

MySQL-объект — это не то, что вы можете кэшировать. Это ресурс, не простой объект.

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

Кроме того, нет никакой гарантии, что сервер базы данных будет по-прежнему доступен, когда вы извлекаете его из кэша.

И у нескольких запросов PHP нет возможности использовать один и тот же кэшированный ресурс. Есть много проблем с этим планом.

Какое решение для вашей цели является постоянные MySQL соединения, поэтому среда выполнения PHP поддерживает некоторое количество соединений и может использовать их от одного запроса PHP к другому.

5

Другие решения

Других решений пока нет …