Vinzenz Mai: Zugriffszeit auf MySQL DB

Beitrag lesen

Hallo

Also mir wurde gesagt, es ist umständlich auf einer HP für jeden user eigene Tabellen anzulegen

Nein, es ist nicht umständlich, es ist ausgesprochen grottiges Datenbankdesign.

(zb: create ".$username."table; ), ich konnte aber nicht herrausfinden wieso, daher habe ich die Zugriffszeiten getestet, mit folgendem Ergebniss:

Anlegen |Zugriffszeit   |löschen

1 DB je 5000 Tabellen 59 sec 10.000 = 5 sec >1 sec
5 DB je 1000 Tabellen 70 sec 10.000 = 4 sec >1 sec
1000 DB je 5 Tabellen 90 sec 10.000 = 4 sec 35 sec

Irrelevant. Im Normalfall sollte es für eine DB-Anwendung nicht erforderlich sein, irgendwelche Tabellen nach der Ersteinrichtung der Anwendung zu erstellen (von temporären Tabellen in Stored Procedures für bestimmte Spezialaktionen mal abgesehen).

Jdesmal also 5000 Datensätze, nur unterschiedlich aufgeteilt.

Aus diesem Test geht für mich hervor, dass die Zugriffszeit immer in etwa 0.4 ms pro Select abfrage ist. Nur das Anlegen und löschen dauert etwas länger, was aber pro user ja sowieso nur einmal vor kommt, also eigentlich auch egal ist.

Irrelevant, es ist miserables Design bei einem relationalen Datenbankmanagementsystem (DBMS) wie MySQL.

  1. Warum ist es umständlich für jeden user eigene Tabellen anzulegen (also z.b. für seine Post)?

Weil gleichartige Daten in eine *einzige* Tabelle gehören. Sie lassen sich dort wunderbar abfragen.

  1. Diese Zugriffszeiten habe ich auf meinem Rechner (512 DDR Ram) gemacht, wie würden sie sich auf einem durchschnittlichen Webserver(5-10 Euro/Monat) verhalten (schneller? langsamer?)

irrelevant.

  1. Wie sieht die mir zur verfügung stehende Rechnerleistung auf einem Webserver aus, also gibt es dafür beschränkungen, oder bekomme ich soviel, wie sich gerade ausgeht (Tageszeit abhängig)?

das kann Dir höchstens Dein Provider sagen. Du denkst zu kurzsichtig. Fragen wie: Was ist die höchste Post-Zahl, die an einem Tag erreicht wurde, kannst Du bei einer Tabelle simpel beantworten, bei Deinem Design: viel Spass.

Du verwendest ein relationales Datenbankmanagementsystem und solltest Deine Anwendung nicht gegen das DBMS designen. Möchtest Du es anders, solltest Du ein DBMS verwenden, dass Deine Wünsche unterstützt (siehe Abschnitt Kritik).

Freundliche Grüße

Vinzenz