MySQL - это база данных, которая известна легкими издержками соединения.По этой причине опасения относительно повторного использования соединений редко появляются, но в любом случае соединения в PHP привязаны к процессам.Вы действительно увидите только преимущество повторного использования соединений под нагрузкой, когда достаточно запущенных php-процессов, и устойчивый PHP-процесс может повторно использовать клиентское соединение mysql.
Другими словами, ваши клиентские соединения mysqlМожет / будет / может быть закрыт в зависимости от конфигурации вашего веб-сервера, даже если вы используете постоянные MySQL-соединения, или потребуется новое соединение, если у процесса apache для запроса еще нет постоянного соединения.
Даже если у вас есть постоянное соединение, это НЕ означает, что в вашем сценарии все будет быстрее, потому что вы предполагаете, что время соединения с RDS через общедоступный Интернет медленное если на самом деле все клиентское соединение mysql из вашего локального приложения через общедоступный интернет работает медленно .Запросы будут медленными, выборка набора результатов будет медленной, и в целом это будет плохой опыт.
Соединение, занимающее 12 секунд, - это не то, что вы бы увидели, если бы весь хостинг вашего сайта размещался в AWS.и используя RDS для вашего хранилища данных.Это будет намного ближе к типу производительности, которую вы получаете на своем локальном хосте с локальной базой данных.
Кроме того, весь предикат идеи не годится.
- RDS - это продукт премиум-класса.Вы не должны использовать это для разработки вообще.Если вы используете свободный уровень, производительность базы данных для чего угодно, кроме крошечной базы данных, будет довольно медленной.
- MySQL изначально не имеет защиты сетевого уровня.В вашем развертывании AWS должен использоваться VPC, где RDS находится в VPC, а ваши серверы приложений PHP - в VPC.
- В вашем приложении нет ничего особенного для использования RDS.Он выглядит для вашего приложения как любая другая база данных mysql с параметром не-localhost -h.
Вы пытаетесь настроить то, что буквально никто не использовал бы в реальном мире, таким образом, вы пытаетесь решитьСамостоятельная проблема, которая не принесет долгосрочной выгоды вашему проекту.
С учетом сказанного, если вы хотите лучше понять, почему вы испытываете то, что вы есть, и как работают как PHP, так и связанные с ними ресурсы, то база данных, которая ДОЛЖНА иметь тяжелый и трудоемкий процесс соединения, - это Oracle.Люди, использующие Oracle с PHP, на законных основаниях должны быть обеспокоены повторным использованием соединения, потому что Oracle ожидает, что соединение будет установлено, и тогда произойдет много «сеансов».Хотя эта статья Oracle Cookbook сейчас несколько устарела, она хорошо иллюстрирует связь между процессами PHP (по крайней мере, с Apache и Mod_php) и соединениями с базами данных.
И последнее, но не менее важное:Эта тема усложняется тем, что PHP можно запустить разными способами.Apache имеет несколько различных конфигураций, которые отличаются от IIS, который отличается от Nginx / php-fpm, который стал популярным в последние годы. Этот вопрос / ответ SO уже адресован конкретному параметру PDO, который вы пытаетесь использовать, который в конечном итоге просто передает его в клиентскую библиотеку MySQL, вместе с некоторыми важными предостережениями и проблемами, объясняющими, почему соединения MySQL редко стоятвероятность неприятностей, которые они могут вызвать.