Tengo un conversacional que trabaja en un API de devolución de llamada, que envía una consulta a mi servidor cada vez que alguien escribe un mensaje
Recientemente, he leído de las denominadas conexiones persistentes, que me hizo pensar que yo puedo evitar volver a conectarse a la base de datos cada vez que tengo una consulta a mi servidor, debido a que la carga de la base de datos lleva algún tiempo y me gustaría acelerar ese proceso
Por lo tanto, he cambiado ninguna conexión en mi script para tener un p:
prefijo, como esto
$conn = new mysqli("p:".$servername, $username, $password, $dbname);
Como lo he entendido, de esta manera mysqli encuentra una conexión existente con los mismos parámetros o crea una si no existe, en lugar de abrir una nueva conexión cada vez
Pero aún así, un par de horas más tarde he comprobado las conexiones abiertas y me he dado cuenta de grupo de conexiones similares, diferentes sólo por su ID
, como este
ID | USER | HOST | DB | COMMAND | TIME | STATE | INFO |
+---------+------+-----------+----------+---------+------+-------+------+
| 5248403 | user | localhost | database | Sleep | 24 | | NULL |
| 5248609 | user | localhost | database | Sleep | 113 | | NULL |
| 5247822 | user | localhost | database | Sleep | 1 | | NULL |
| 5248652 | user | localhost | database | Sleep | 79 | | NULL |
(con user
y database
enmascaramiento de usuario real y base de datos)
¿Hay algo que he entendido bien acerca de las conexiones persistentes? ¿Qué puedo hacer para evitar conexiones similares?
Un problema libro de texto XY
la carga de la base de datos lleva algún tiempo y me gustaría acelerar ese proceso
Tengo la sensación de que una conexión persistente habría sido la última opción para resolver su problema, si lo hay.
Como lo he entendido, de esta manera mysqli encuentra una conexión existente con los mismos parámetros o crea una si no existe, en lugar de abrir una nueva conexión cada vez
En realidad, es muy lejos de eso. Una conexión persistente en PHP está ligada a una serie de hilos de PHP se ejecuta en. Y cada hilo que suceda para abrir una conexión va a mantenerla abierta más allá, ofreciendo esta conexión ya abierta para las secuencias de comandos que se va a ejecutar. Se refiere a una conexión persistente es persistente, o en otras palabras, un persistentemente abierta.
Por lo tanto, se espera que la foto se puede ver.
Mientras que no se quede en "demasiadas conexiones" error que está bien, aunque dudo de ti es un beneficio medible en el uso de una conexión persistente.