sql >> Base de Datos >  >> RDS >> Mysql

MySQL:conexión persistente frente a agrupación de conexiones

Tener conexiones persistentes no implica que todos los subprocesos utilicen la misma conexión. Simplemente "dice" que mantiene la conexión abierta (en contradicción con abrir una conexión cada vez que la necesita). Abrir una conexión es una operación costosa, por lo que, en general, se intenta evitar abrir conexiones con más frecuencia de la necesaria.

Esta es la razón por la que las aplicaciones de subprocesos múltiples suelen utilizar grupos de conexiones. El grupo se encarga de abrir y cerrar conexiones y cada subproceso que necesita una conexión solicita una del grupo. Es importante tener cuidado de que el subproceso devuelva la conexión lo antes posible al grupo, para que otro subproceso pueda usarla.

Si su aplicación tiene solo algunos subprocesos de ejecución prolongada que necesitan conexiones, también puede abrir una conexión para cada subproceso y mantenerla abierta.

Usar solo una conexión (como lo describió) es igual a un grupo de conexiones con el tamaño máximo uno. Tarde o temprano, esto será su cuello de botella, ya que todos los subprocesos tendrán que esperar la conexión. Esta podría ser una opción para serializar las operaciones de la base de datos (realizarlas en un orden determinado), aunque existen mejores opciones para garantizar la serialización.