Dieter: Mysql Grenzbereiche

Beitrag lesen

Hallo,

ca. 430MB Datenbank

430 MB ist für eine Datenbank eigentlich ein Witz, auch für MySQL.
Was wichtig bei einem Datenbankserver ist, dass dieser viel Ram hat, so dass die Tabellen _nicht_ von der Festplatte gelesen werden müssen.
Das heißt bei dir 430 MB + RAM für OS + RAM für Anwendungen.
Mit 1GB RAM solltest du also eigentlich ganz gut klar kommen.
Außerdem empfiehlt es sich, MySQL auf den neusten Stand zu bringen.

Die DB Strukturen (Abfragen) sind optimiert.

Bist du dir sicher, dass die Abfragen wirklich maximal optimiert sind?
Solltest du unter PHP auf die DB zugreifen, dann lassen sich per mysql_unbuffered_query() bei großen Abfragen noch viel Raushohlen.

Außerdem empfiehlt es sich hier, PHP als Apache Module (sofern Apache überhaupt verwendet wird) einzubinden und _nicht_ als CGI.

Schlechte PHP Scripts führen dazu, dass bei vielen Anfragen der freie RAM immer weniger wird und somit die Laufzeit deutlich ansteigt.
Gute PHP Scripts haben einen konstanten RAM bedarf und somit eine konstante Laufzeit.
Zum Beispiele manche schlechte Scripts haben unter Extrembedingungen zuerst eine Laufzeit von 0,1 Sekunden, doch mit der Zeit wird der freie RAM immer weniger (nimmt teilweise um über 150-200 MB ab) und somit steigt die Laufzeit auf über 3 Sekunden und mehr.
Gute Scripts, die die gleiche Aufgabe haben, verbrauchen nur rund 5-10 MB RAM und somit bleibt die Laufzeit auch konstant bei 0,1 Sek.
Es ist sehr intressant bei solch einem Benchmark die freie RAM-Kurve mit der durchschnittlichen Laufzeit zu vergleichen und man fatale Unterschiede zwischen guten und schlechten Scripts fest.

Auch sollte man die Überlegung anstellen, ob man nicht irgendwo Daten cachen kann.
Bei Foren/Boards kann man viel Rechenleistung sparen, wenn man den umgewandelten Beitrag (bb-codes etc. parsen) in einem Cache zum Beispiel für 10 Tage zwischenspeichert.

Was kommt nach Mysql bzw. was ist leistungsfähiger ein anderen Server will ich mir nicht leisten.

Es gibt weit aus größere Anwendungen die mit MySQL Arbeiten:

Handles large databases. We use MySQL Server with databases that contain 50 million records. We also know of users who use MySQL Server with 60,000 tables and about 5,000,000,000 rows.

MySQL

Sonst ist Oracle eigentlich bekannt dafür, mit sehr großen Datenbanken (wie gesagt, 400 MB ist eigentlich lächerlich, wenn du die Einheit in GB änderst bist du in der richtigen Dimension) zu arbeiten.

MFG