Philipp Hasenfratz: MySQL Datenbankintegrität gefährdet?????????

Beitrag lesen

Halihallo Michael

Normalerweise hätte der neue Eintrag doch in der interen Darstellung der Tabelle an das Ende der Tabelle geschrieben werden müssen (Binärbaum).

Nein. Weder ist die interne Darstellung einer Tabelle ein Binärbaum (das ist nur der
Index, nicht aber die Daten), noch ist es normal, dass neue Einträge an das Ende ge-
schreiben werden.

Weitere Datensätze werden dann wieder korrekt an das Ende eingefügt. Der Fehler läßt sich zwar durch ein neues Sortieren der Tabelle (alter table...) beseitigen, aber dennoch mache ich mir Gedanken, wo der Fehler liegen könnte???????????????????????????

Ganz einfach: Du löschst einen Datensatz, der wird intern als gelöscht markiert (braucht
jedoch immer noch Speicherplatz). Wenn du nun einen neuen Datensatz speicherst, wird
dieser nur bedingt am Ende angefügt (bedingt dann, wenn keine gelöschten Speicherstellen
vorhanden sind). Wenn jedoch ein Datensatz zuvor gelöscht wurde, nimmt der neue Datensatz
dessen Speicher in Anspruch. Ansonsten würde der Speicherverbrauch der Tabelle
explodieren.

Viele Grüsse

Philipp