Wann lohnt sich eine neue Tabelle
Michael Neubert
- datenbank
Hallo,
meine Frage betrifft den Umgang mit einer MySQL Datenbank. Zur Verwaltung der Daten eines Schülerforums nutze ich eine Tabelle mit folgendem Aussehen:
id -> int, Primärschlüssel, auto increment
name, vorname, wohnort, .....
schulbesuch_bis -> varchar (4)
Innerhalb der Website wird diese Tabelle nun sehr oft angesprochen. Neben direkten Zugriffen über den Primärschlüssel (id) werden oft auch Anfragen à la "SELECT name, vorname FROM daten WHERE schulbesuch_bis='...'" durchgeführt. Ich denke mal, dass dabei stets ein "full table scan" notwendig ist, was mir nicht so richtig gefällt.
Meine Frage ist nun, ob ich lieber für jeden Jahrgang (schulbesuch_bis) eine Tabelle anlegen sollte, oder ob das eher "Unsinn" wäre, da dann nur ca. 100-120 Datensätze pro Tabelle abgelegt werden.
Über Antworten würde ich mich sehr freuen.
MfG
Michael N.
Hallo Michael,
Meine Frage ist nun, ob ich lieber für jeden Jahrgang (schulbesuch_bis) eine Tabelle anlegen sollte, oder ob das eher "Unsinn" wäre, da dann nur ca. 100-120 Datensätze pro Tabelle abgelegt werden.
MySQL kann viel mehr Datensätze (einige Zehnerpotenzen mehr) problemlos verwalten, eine Tabelle mit 100 000 Datensätzen und mehr ist kein Problem, auch bei einem "full table scan" nicht - und bis Du 100 Jahrgänge erst mal voll hast, dauert das sicherlich noch einige Zeit.
Außerdem: Warum legst Du keinen zusätzlichen Index auf die Spalte schulbesuch_bis an? Dann brauchst Du erst keinen "full table scan" mehr.
Viele Grüße,
Christian
Hallo Christian,
vielen Dank für deine Antwort. Mein Irrglauben war bisher, dass man INDEXE nur verwendet, falls kein Primärschlüssel existiert... :-)
MfG
Michael N.