1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Comprender las duraciones de conexión a MySQL / MariaDB
Esta guía técnica detalla los límites de recursos en los alojamientos web de Infomaniak; es esencial distinguir el tiempo real (reloj) del tiempo de cálculo (procesador) para comprender el origen de las interrupciones de los scripts.
1. Tiempo de conexión MySQL (I/O)
Límite: 30 segundos reales
Este límite corresponde al tiempo absoluto transcurrido "en mano". Afecta a la comunicación entre PHP y el servidor de la base de datos (MySQL/MariaDB).
Tan pronto como se abre una conexión, el servidor de la base de datos asigna un máximo de 30 segundos para recibir la consulta, ejecutarla y devolver los resultados. Si este plazo se excede (a menudo debido a una consulta SQL mal optimizada), el servidor MySQL corta bruscamente la conexión. Esto generalmente genera el error MySQL server has gone away.
2. Tiempo de procesamiento PHP (CPU)
Límite: 10 segundos CPU
Este límite se refiere exclusivamente a la potencia de cálculo consumida por el servidor web para ejecutar el código PHP.
Es crucial señalar que el tiempo de espera no cuenta. Cuando PHP espera una respuesta de la base de datos, está en pausa y no consume casi tiempo de CPU. Por lo tanto, un script será interrumpido por el servidor web solo si realiza cálculos intensivos (bucles complejos, criptografía, procesamiento de archivos) durante más de 10 segundos acumulados.
Interacción de los dos límites
Para garantizar la estabilidad de la aplicación, cada operación debe respetar simultáneamente estas dos restricciones distintas:
- La aplicación dispone de 30 segundos de tiempo total para interactuar con la base de datos (latencia de red + ejecución SQL).
- La aplicación dispone de 10 segundos de tiempo de cálculo puro para procesar los datos recibidos.
Ejemplo de funcionamiento válido: Un script que espera 25 segundos una respuesta compleja de MySQL (I/O) y luego procesa el resultado durante 2 segundos (CPU) funcionará perfectamente, ya que no ha excedido ninguno de los dos límites individuales, aunque el tiempo total sea de 27 segundos.