1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Verstehen der Verbindungsdauern zu MySQL / MariaDB
Dieser technische Leitfaden beschreibt die Ressourcengrenzen für die Webhosting-Dienste von Infomaniak. Es ist entscheidend, die Echtzeit (Uhrzeit) von der Rechenzeit (Prozessor) zu unterscheiden, um die Ursachen von Skriptunterbrechungen zu verstehen.
1. MySQL-Verbindungszeit (I/O)
Grenze: 30 Sekunden Echtzeit
Diese Grenze entspricht der absoluten verstrichenen Zeit "auf die Sekunde genau". Sie betrifft die Kommunikation zwischen PHP und dem Datenbankserver (MySQL/MariaDB).
Sobald eine Verbindung geöffnet wird, reserviert der Datenbankserver maximal 30 Sekunden, um die Anfrage zu empfangen, auszuführen und die Ergebnisse zurückzusenden. Wenn diese Frist überschritten wird (oft aufgrund einer schlecht optimierten SQL-Anfrage), trennt der MySQL-Server die Verbindung abrupt. Dies löst in der Regel den Fehler MySQL server has gone away aus.
2. PHP-Verarbeitungszeit (CPU)
Grenze: 10 Sekunden CPU
Diese Grenze betrifft ausschließlich die Rechenleistung, die vom Webserver für die Ausführung des PHP-Codes verbraucht wird.
Es ist wichtig zu beachten, dass die Wartezeit nicht zählt. Wenn PHP auf eine Antwort der Datenbank wartet, ist es in der Pause und verbraucht fast keine CPU-Zeit. Daher wird ein Skript nur dann vom Webserver unterbrochen, wenn es intensive Berechnungen (komplexe Schleifen, Kryptographie, Dateiverarbeitung) über mehr als 10 Sekunden kumuliert durchführt.
Wechselwirkung der beiden Grenzen
Um die Stabilität der Anwendung zu gewährleisten, muss jede Operation gleichzeitig diese beiden unterschiedlichen Einschränkungen einhalten:
- Die Anwendung verfügt über 30 Sekunden Gesamtzeit, um mit der Datenbank zu interagieren (Netzwerklatenz + SQL-Ausführung).
- Die Anwendung verfügt über 10 Sekunden reine Rechenzeit, um die empfangenen Daten zu verarbeiten.
Beispiel für eine gültige Funktionsweise: Ein Skript, das 25 Sekunden auf eine komplexe Antwort von MySQL (I/O) wartet und dann das Ergebnis 2 Sekunden lang verarbeitet (CPU), funktioniert einwandfrei, da es keine der beiden individuellen Quoten überschritten hat, obwohl die Gesamtzeit 27 Sekunden beträgt.