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

mysql_connect VS mysql_pconnect

Las conexiones persistentes deberían ser innecesarias para MySQL. En otras bases de datos (como Oracle), establecer una conexión es costoso y lleva mucho tiempo, por lo que si puede reutilizar una conexión, es una gran victoria. Pero esas marcas de bases de datos ofrecen agrupación de conexiones, lo que resuelve el problema de una mejor manera.

Hacer una conexión a una base de datos MySQL es rápido en comparación con esas otras marcas, por lo que el uso de conexiones persistentes brinda proporcionalmente menos beneficios para MySQL que para otra marca de base de datos.

Las conexiones persistentes también tienen un inconveniente. El servidor de la base de datos asigna recursos a cada conexión, ya sea que las conexiones sean necesarias o no. Por lo tanto, verá una gran cantidad de recursos desperdiciados sin ningún propósito si las conexiones están inactivas. No sé si llegará a 10.000 conexiones inactivas, pero incluso un par de cientos es costoso.

Las conexiones tienen estado, y sería inapropiado que una solicitud de PHP "heredara" información de una sesión utilizada anteriormente por otra solicitud de PHP. Por ejemplo, las tablas temporales y las variables de usuario normalmente se limpian cuando se cierra una conexión, pero no si usa conexiones persistentes. Del mismo modo, la configuración basada en la sesión, como el juego de caracteres y la intercalación. Además, LAST_INSERT_ID() informaría la identificación generada por última vez durante la sesión, incluso si fue durante una solicitud de PHP anterior.

Al menos para MySQL, la desventaja de las conexiones persistentes probablemente supere sus beneficios. Y existen otras técnicas mejores para lograr una alta escalabilidad.

Actualización de marzo de 2014:

La velocidad de conexión de MySQL siempre fue baja en comparación con otras marcas de RDBMS, pero está mejorando aún más.

Consulte http://mysqlserverteam.com/improving-connectdisconnect-performance/

Lea el blog para obtener más detalles y comparaciones de velocidad.