Есть ли недостатки в кэшировании соединения MySQL?
Например,
$mysqli = new mysqli(params);
apc_store('mysqli', $mysqli);
Это сэкономит время, если на вашем сайте много пользователей, которым требуются подключения. Вместо того, чтобы открывать соединение для каждого пользователя, почему бы не кэшировать его?
Я ничего не нашел, прибегая к помощи гугла, поэтому просто удивляюсь, что я что-то пропустил.
Спасибо за ваше время.
MySQL-объект — это не то, что вы можете кэшировать. Это ресурс, не простой объект.
Извлечение его из кэша потребовало бы его повторного подключения к серверу базы данных, что означает, что в кэшированной версии потребуется хранить пароль в виде открытого текста, что делает его уязвимостью безопасности, если вы можете кэшировать его.
Кроме того, нет никакой гарантии, что сервер базы данных будет по-прежнему доступен, когда вы извлекаете его из кэша.
И у нескольких запросов PHP нет возможности использовать один и тот же кэшированный ресурс. Есть много проблем с этим планом.
Какое решение для вашей цели является постоянные MySQL соединения, поэтому среда выполнения PHP поддерживает некоторое количество соединений и может использовать их от одного запроса PHP к другому.
Других решений пока нет …