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

PHP mysql_connect establece wait_timeout

No es bueno aferrarse a las conexiones de la base de datos durante períodos prolongados porque la base de datos solo proporciona una cantidad fija de conexiones en un momento dado; si está usando uno durante mucho tiempo, significa que su base de datos tiene menos capacidad para manejar otras solicitudes, incluso si en realidad no está haciendo nada con esa conexión.

Sugiero desconectar la conexión si el programa ha terminado de usarlo por el momento, y volver a conectarse cuando llegue el momento de hacer más trabajo con la base de datos.

Además, esta solución protegerá su programa de un posible tiempo de inactividad de la base de datos, es decir, si necesita reiniciar su servidor de base de datos (sucede, incluso en la mejor red compatible). Si mantiene viva la conexión (es decir, un ping DB según las otras respuestas), entonces un evento como ese lo dejará exactamente con el mismo problema que tiene ahora. Con una conexión administrada correctamente que se interrumpe cuando no se necesita, puede dejar su daemon funcionando de manera segura incluso si ha planeado un tiempo de inactividad en su base de datos; mientras permanezca inactivo durante el tiempo que dure, no tiene por qué ser más sabio.

(Aparte, también cuestionaría la conveniencia de escribir un programa PHP que se ejecute continuamente; PHP está diseñado para solicitudes web de corta duración. Puede ser capaz de ejecutar programas daemon a largo plazo, pero hay mejores herramientas para el trabajo)