Hallo an alle.
Heute mal keine Frage nach PHP-Codes oder SQL-Querys. Einfach eine theoretische Frage, die mich schon seit längerem interessiert.
Und bevor hier wieder öffentlich gefragt wird, warum man denn einen Auftrag annimmt, obwohl man nicht weiß, ob man diesen überhaupt bewältigen kann und die Antwort hier dann im Forum zu finden glaubt: NEIN, es ist kein Auftrag, sondern nur ein theoretisches Problem.
Folgende Ausgangssituation:
Es soll ein PHP-MySQL-System entstehen, mit dem eine unbestimmte Anzahl von Nutzern per Browser über das Internet arbeiten kann. Zu erwarten ist, dass pro Nutzer ca. 300 Einträge pro Monat entstehen (also bei ca. 50 Nutzern insgesamt 15.000 Einträge pro Monat). Das sind auf das Jahr hochgerechnet viele Einträge, nämlich 180.000 Stück.
Die Fragen:
1. Wie sieht es mit der Performance aus, wenn derart viele Datensätze erfasst werden? Ich kann mir vorstellen, dass das System sicher "einige Zeit" braucht, wenn beispielsweise schon 100.000 Einträge existieren, Nutzer Nr. 27 seine 3.600 Einträge einsehen möchte und das Skript diese 3.600 aus den bestehenden 100.000 erst einmal herausfiltern muss. Man sollte noch hinzufügen, dass dabei sicher auch Abfragen über 2 oder mehreren Tabellen stattfinden könnten.
2. Wie sieht es mit der maximal zu sichernden Datenmenge aus? Das MySQL-Handbuch gibt für mich widersprüchliche Antworten. 4 Gigabyte? 8 Terabyte? "Non removable disk capacity" is the limit?
3. Wie könnte / müsste man das Tabellensystem planen, welches die Datensätze der Kunden erfassen soll? Für jeden Buchstaben im Alphabet eine Tabelle anlegen, damit Kunde Auermann in der A-Tabelle landet und Kunde Mustermann in der M-Tabelle? Sicher keine gute Idee. Alle Kunden, deren Name von A-M reicht, in eine Tabelle, alle Kunden von N-Z in eine zweite Tabelle? Sicher auch keine gute Idee. Doch lieber alle Kundendatensätze in einer Tabelle lassen? Da sehe ich die Gefahr der "Langsamkeit".
Bin für alle ernstgemeinten Anregungen, Tipps oder Hilfestellungen dankbar.
Innuendo
Heute mal keine Frage nach PHP-Codes oder SQL-Querys. Einfach eine theoretische Frage, die mich schon seit längerem interessiert.
Und bevor hier wieder öffentlich gefragt wird, warum man denn einen Auftrag annimmt, obwohl man nicht weiß, ob man diesen überhaupt bewältigen kann und die Antwort hier dann im Forum zu finden glaubt: NEIN, es ist kein Auftrag, sondern nur ein theoretisches Problem.
Folgende Ausgangssituation:
Es soll ein PHP-MySQL-System entstehen, mit dem eine unbestimmte Anzahl von Nutzern per Browser über das Internet arbeiten kann. Zu erwarten ist, dass pro Nutzer ca. 300 Einträge pro Monat entstehen (also bei ca. 50 Nutzern insgesamt 15.000 Einträge pro Monat). Das sind auf das Jahr hochgerechnet viele Einträge, nämlich 180.000 Stück.
Die Fragen:
1. Wie sieht es mit der Performance aus, wenn derart viele Datensätze erfasst werden? Ich kann mir vorstellen, dass das System sicher "einige Zeit" braucht, wenn beispielsweise schon 100.000 Einträge existieren, Nutzer Nr. 27 seine 3.600 Einträge einsehen möchte und das Skript diese 3.600 aus den bestehenden 100.000 erst einmal herausfiltern muss. Man sollte noch hinzufügen, dass dabei sicher auch Abfragen über 2 oder mehreren Tabellen stattfinden könnten.
2. Wie sieht es mit der maximal zu sichernden Datenmenge aus? Das MySQL-Handbuch gibt für mich widersprüchliche Antworten. 4 Gigabyte? 8 Terabyte? "Non removable disk capacity" is the limit?
3. Wie könnte / müsste man das Tabellensystem planen, welches die Datensätze der Kunden erfassen soll? Für jeden Buchstaben im Alphabet eine Tabelle anlegen, damit Kunde Auermann in der A-Tabelle landet und Kunde Mustermann in der M-Tabelle? Sicher keine gute Idee. Alle Kunden, deren Name von A-M reicht, in eine Tabelle, alle Kunden von N-Z in eine zweite Tabelle? Sicher auch keine gute Idee. Doch lieber alle Kundendatensätze in einer Tabelle lassen? Da sehe ich die Gefahr der "Langsamkeit".
Bin für alle ernstgemeinten Anregungen, Tipps oder Hilfestellungen dankbar.
Innuendo
Kommentar