Edemund
Erfahrenes Mitglied
Hallo,
ich habe eine relativ undefinierte Frage, die mehr ein Abtasten eines in meinen Augen etwas undefinierten Problembereichs ist, aber vielleicht hat trotzdem einer eine Idee.
Meine Seite ist von der Grundstruktur her so aufgebaut, dass man per "Include-System" navigiert. Dh. über eine in der URL (zB http://www.seite.de?navigation=home) übergebene Variable weiß das Script welche (variable) Datei es includen muss. "Oben" über der variablen Datei include ich alle konstanten Daten, die die variable Datei benötigt, wie zB die Verbindung zu mySQL oder die Funktionen.
"Unten" unter der Variablen Datei schließe ich die MySQL-Verbindung mit mysql_close().
Der Aufbau ist also immer so:
konstanter Teil oben (Funktionen, Verbindung etc.)
Variabler Teil
konstanter Teil unten (mysql_close() )
Zusätzlich habe ich die Datenbank soweit mein Kenntnisstand reicht optimiert, dh. mit Indizes versehen, Entitäten getrennt usw.
Die Datenbankabfragen habe ich ebenfalls so optimiert wie ich es für am besten hielt, dh. möglichst wenige Abfragen, Abfragen in JOINS zusammenfassen, COUNT, SUM etc. anstatt von mysql_num_rows und ähnlichen Konsorten verwenden etc.
Trotzdem bekomme ich bei Stoßzeiten (100 oder mehr User gleichzeitig) auf meiner Seite immer kurzfristig den too many connections error. Der Default Wert der too many connections ist 100 und ich kann ihn leider auch nicht von meinem Hoster ändern lassen.
Ich habe bereits persistente Verbindungen ausprobiert und eine mysql_query-Funktion geschrieben, die direkt nach jeder Query (in diesem Fall natürlich mit nichtpersistenter Verbindung) mysql_close() aufruft und wieder schließt, mit dem Ergebnis, dass die Performance wirklich in den Keller ging.
Der Server auf dem meine Seite liegt hat 512 RAM, die Datenbank ist ca. 300 MB groß und hat um die 200 Tabellen.
Hatte irgendeiner schon ein ähnliches Problem und eine Idee wo bei mir der Flaschenhals liegen könnte?
Dh. mehr Hardware reinschieben oder Max-Connections erhöhen (= Hosterwechsel, was im Serversegment natürlich immer etwas längere Überlegung braucht bei meist mind. 1 Jahr Vertragslaufzeit) oder irgendwelche eklatanten Programmierfehler ausbügeln, die ich übersehen habe?
Würde mich freuen, wenn mir jemand helfen könnte,
viele Grüße,
Edemund
ich habe eine relativ undefinierte Frage, die mehr ein Abtasten eines in meinen Augen etwas undefinierten Problembereichs ist, aber vielleicht hat trotzdem einer eine Idee.
Meine Seite ist von der Grundstruktur her so aufgebaut, dass man per "Include-System" navigiert. Dh. über eine in der URL (zB http://www.seite.de?navigation=home) übergebene Variable weiß das Script welche (variable) Datei es includen muss. "Oben" über der variablen Datei include ich alle konstanten Daten, die die variable Datei benötigt, wie zB die Verbindung zu mySQL oder die Funktionen.
"Unten" unter der Variablen Datei schließe ich die MySQL-Verbindung mit mysql_close().
Der Aufbau ist also immer so:
konstanter Teil oben (Funktionen, Verbindung etc.)
Variabler Teil
konstanter Teil unten (mysql_close() )
Zusätzlich habe ich die Datenbank soweit mein Kenntnisstand reicht optimiert, dh. mit Indizes versehen, Entitäten getrennt usw.
Die Datenbankabfragen habe ich ebenfalls so optimiert wie ich es für am besten hielt, dh. möglichst wenige Abfragen, Abfragen in JOINS zusammenfassen, COUNT, SUM etc. anstatt von mysql_num_rows und ähnlichen Konsorten verwenden etc.
Trotzdem bekomme ich bei Stoßzeiten (100 oder mehr User gleichzeitig) auf meiner Seite immer kurzfristig den too many connections error. Der Default Wert der too many connections ist 100 und ich kann ihn leider auch nicht von meinem Hoster ändern lassen.
Ich habe bereits persistente Verbindungen ausprobiert und eine mysql_query-Funktion geschrieben, die direkt nach jeder Query (in diesem Fall natürlich mit nichtpersistenter Verbindung) mysql_close() aufruft und wieder schließt, mit dem Ergebnis, dass die Performance wirklich in den Keller ging.
Der Server auf dem meine Seite liegt hat 512 RAM, die Datenbank ist ca. 300 MB groß und hat um die 200 Tabellen.
Hatte irgendeiner schon ein ähnliches Problem und eine Idee wo bei mir der Flaschenhals liegen könnte?
Dh. mehr Hardware reinschieben oder Max-Connections erhöhen (= Hosterwechsel, was im Serversegment natürlich immer etwas längere Überlegung braucht bei meist mind. 1 Jahr Vertragslaufzeit) oder irgendwelche eklatanten Programmierfehler ausbügeln, die ich übersehen habe?
Würde mich freuen, wenn mir jemand helfen könnte,
viele Grüße,
Edemund