Существует довольно много блогов / ссылок, которые препятствуют использованию постоянных соединений, главным образом потому, что очистка должна выполняться на стороне клиента, и случаи, когда транзакции / блокировки должны быть откатаны правильно. Тем не менее, эти ссылки старые и не всегда в контексте PHP-интерфейса mysqli.
Я прочитал ссылку: Расширение mysqli и постоянные соединения
Это ясно предполагает, что он выполняет большую часть желаемой очистки, когда клиент неожиданно завершает работу:
- Откат активных транзакций
- Закрыть и удалить временные таблицы
- Разблокировать таблицы
- Сброс переменных сеанса
- Закрыть подготовленные операторы (всегда происходит с PHP)
- Закрыть обработчик
- Снять блокировки, полученные с помощью GET_LOCK ()
Теперь это в значительной степени выполняет большую часть очистки, включая блокировки READ / WRITE для таблиц, если они были получены. Поэтому я считаю, что это должно быть безопасно. Могу я ошибаться?
Кроме того, в нем говорится о некотором снижении производительности в виде дополнительного времени, необходимого для выполнения очистки. Я хотел бы знать, сколько это может быть в миллисекундах? Может ли оно быть таким большим, как, скажем, 100 мс?
Функция автоматической очистки имеет свои преимущества и недостатки.
Преимущество в том, что программисту больше не нужно беспокоиться о
добавление кода очистки, как он вызывается автоматически. Тем не менее
недостатком является то, что код потенциально может быть немного медленнее, так как
код для выполнения очистки должен выполняться каждый раз, когда соединение
вернулся из пула соединений.
Интересно, действительно ли вы думаете, что можете доверять ответу анонимного прохожего больше, чем официальной странице документации, которая четко отвечает на ваш вопрос.
Но если вы делаете — да, вы можете верить, что это должно быть безопасно.
Что касается снижения производительности, то, как он задается, я считаю, что вам не нужны постоянные соединения вообще.
Других решений пока нет …