Hallo!
Ich habe eine Frage zur Performance von MySQL-Abfragen.
Meine Online-Quiz-Seite kommt langsam so richtig in die Gänge und ich befürchte, daß da eine Menge Daten anfallen werden und irgendwann die Performance völlig zusammenbricht.
Es geht vor allem um 3 Tabellen:
user
answers
questions
Wenn ein User eine Frage beantwortet, dann wird in der Tabelle answers ein Datensatz angelegt in dem userid, questionid, richtig/falsch sowie ein Timestamp gespeichert werden.
Theoretisch kann jeder User jede Frage beantworten, wodurch sich die Anzahl der Datensätze natürlich aus Frageanzahl * Useranzahl ergibt. Wenn die Seite mal 5.000 User und 20.000 Fragen hat (und derzeit sieht es wirklich so aus als ob das mal passieren wird) dann hätte die Tabelle answers bis dahin 100 Millionen Datensätze. Ganz abgesehen davon, daß die Tabelle dann mehrere Gigabyte groß wird, wie wirkt sich das bei der Abfrage aus?
Natürlich wird vor jedem Anzeigen einer Frage abgefragt, welche Fragen der betreffende User noch nicht beantwortet hat, damit ihm keine Fragen mehrfach gestellt werden.
Ausserdem gibt es eine monatliche Statistik, wieviel % an richtigen Antworten jeder User in diesem Monat geschafft hat.
Derzeit läuft noch alles superschnell, aber das könnte sich bald einmal ändern, oder?
Grüsse
DrDee