El uso de conexiones persistentes en MySQL, pero todavía muchas conexiones abiertas

nicael:

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 usery databaseenmascaramiento 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?

Su sentido común:

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.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=372101&siteId=1
Recomendado
Clasificación