Процессы MySql зависают при использовании постоянного соединения с PDO
У меня проблема с постоянным подключением к PDO. Сейчас это не может быть реальной проблемой, но я не могу найти ни одного поста, посвященного этому поведению.
Я использую старый добрый PDO в режиме постоянного подключения для своего веб-приложения. Сейчас я создаю новое соединение через new PDO(...)
,
Когда я запускаю этот скрипт, устанавливается новое соединение (C#1) и процесс MySql (P#1) для поддержки постоянного соединения.
Итак, я снова запускаю скрипт, создавая новое условие (C#2) и ожидая, что C# 2 будет использовать P # 1 из последнего соединения. Каждый раз, когда я запускаю этот скрипт, появляется новый процесс, пока последний еще жив (в спящем режиме).
На моем производственном сервере одновременно находятся около 350 просперов (в спящем режиме) от 3 разных пользователей (все пользователи подключаются с одного и того же сервера Apache).
Вопрос: допустима ли эта ситуация?
1 ответ
Нашел мой ответ
Они приводят к тому, что дочерний процесс просто подключается только один раз в течение всей своей жизни, а не каждый раз, когда обрабатывает страницу, требующую подключения к серверу SQL. Это означает, что для каждого дочернего элемента, который открыл постоянное соединение, будет свое собственное открытое постоянное соединение с сервером. Например, если у вас было 20 разных дочерних процессов, которые выполняли скрипт, который установил постоянное соединение с вашим SQL-сервером, у вас было бы 20 разных соединений с SQL-сервером, по одному от каждого дочернего.
http://php.net/manual/en/features.persistent-connections.php