Performancefrage zu Webprojekt: Reicht managed Server mit Kundensharing?

filament

Erfahrenes Mitglied
Hallo liebe Community,

ich habe aufgrund eines Webprojekte das ansteht bereits im Forum bzgl. der Datenbanken angefragt. Dort gab man mir den Rat bzgl. meiner anderen Fragen (alles etwas gemischt) noch hier und im PHP Forum einen weiteren Thread aufzumachen.

Ich möchte den Text eigentlich nicht aus dem Zusammenhang trennen, da es sonst schwer zu verstehen sein dürfte inwiefern ich mich auf was beziehe etc. Daher kopiere ich mal meinen 1. Beitrag aus dem bereits eröffneten Thema:

Ich möchte grob gesagt (ohne groß ins Detaill zu gehen) ein Projekt aufbauen, dass sich um Finanzen, Anbieter und Quoten dreht und deren tabellarische und grafische Auswertung.

Da ich leider lange nicht mehr selbst Seiten programmiert habe bzw. mich weiter informiert habe, würde ich gerne vorab mal einige Sachen geklärt haben, bevor ich was anfange und es später aufgrund von Problemen wieder umstrukturieren muss. Die Arbeit kann ich mir ja durch ein gutes Grundkonzept sparen.

Das Projekt läuft wie folgt ab:

Ich stelle eine Seite zur Verfügung, die kostenlos von jedem Besucher der sich registriert hat, genutzt werden kann. Der User hat dabei die Möglichkeit selbst Datensätze anzulegen. Um eine Zuordnung zu gewährleisten wollte ich also erst einmal eine Tabelle anlegen User. Diese Tabelle besteht aus id (auto_increment; unique), username, registrierungsdatum, werbefrei (eventuell später brauchbar). Über Registrierung und die damit verbundenen MySQL Querys möchte ich hier nicht reden, die kann ich dem manual selbst entnehmen, zumal ich nicht ganz so eingerostet bin

Die zweite Tabelle soll lauten: Einzahlungen; Bestehend aus: id, userid, betrag, anbieter, datum.
Die dritte Tabelle soll lauten: Auszahlungen; Bestehend aus: id, userid, betrag, anbieter, datum.
Die vierte Tabelle soll lauten: Gewinne; Bestehend aus: id, userid, betrag, anbieter, datum.
Die fünfte Tabelle soll lauten: Verluste; Bestehend aus: id, userid, betrag, anbieter, datum.

Vielleicht folgen noch weitere Tabellen, sollen aber gleichen Aufbau haben. Grund: Ich will mit nem JOIN die User Tabelle mit der jeweiligen anderen Tabelle verbinden.

Nun zum eigentlichen Problem:

Es kann sein, dass ein User am Tag um die 20 - 40 Datensätze anlegt. Gehen wir mal von 20 aus. Dann legt er im Jahr eventuell 20 x 365 Datensätze an. Das sind 7300. Wenn ich nun 500 registrierte User habe (was ja eigentlich nicht viel ist), dann habe ich also um die 3.500.000 Datensätze. Ich will die Datensätze jedes Users mittels ID sortieren und auch zusammenzählen, maximal jedoch auf 1 Jahr beschränkt (SUM, ORDER BY etc.). Alles was älter ist als 1 Jahr wird nachts um 3 durch nen Cronjob gelöscht.

Hält meine MySQL Datenbank solche Datenströme stand? Macht es hier vielleicht Sinn das Projekt gleich auf mehrere Datenbanken aufzubauen? (Gedanke: 200 - 500 User pro Datenbank, danach neue) Frage: Macht das Sinn auf dem gleichen Server? (Oder sinnvoller verschiedene Server dafür zu mieten? (Anfangs will ich natürlich nicht die riesen Kosten eingehen, bis das Projekt nicht etwas an Einnahmen durch Werbung etc. abwirft))

Wenn ja wie realisier ich solche mehrfachserver basierten Projekte? Sollte ich der performance halber Datenbankklassen nutzen? (ich glaub das hieß so?)

Nächster Punkt: Bin wie bereits geschrieben länger nicht tätig gewesen, gibt es irgendwelche technischen Neuerungen in PHP5?

Insgesamt in den Raum gefragt, eignet sich für solche Statistikprojekte mit Auswertungen MySQL überhaupt? Oder gibt es andere Datenbanksysteme die besser geeignet sind? Wenn ja welche? Hat jemand dazu Tutorials oder Einführungen? (Kenne mich nur mit MySQL aus, sonst noch nichts anderes gemacht bisher)

Hat vielleicht jemand Erfahrungen mit Projekten derartiger Größe?

Danke im Voraus an euch für die Mühe!
Gruß
Ronny

Hinsichtlich der Datenbank hatten wir dort schon festgestellt, dass es gegen meine Datenbankstruktur nichts einzuwenden gibt. Auch MySQL sollte als Lösung in Frage kommen ohne Probleme, weil es eher auf die richtige Datenbankstruktur ankommt, als auf die Datenbanksprache. Wobei hier Mongodb in den Raum geworfen wurde. Ich denke allerdings, dass ich eher MySQL nutzen möchte, da ich mich damit schon gut auskenne.

Ich würde mich freuen, wenn hier einige User mal auf die Problematik des Servers an sich eingehen könnten. Wäre es denkbar das ganze ohne eigenen Root Server zum Laufen zu bringen (Ist ja schließlich auch eine Kostenfrage)****

Danke erneut im Voraus!
 
Zurück