Seite 1 von 1

Änderung der Datenbankgröße bei Löschung von Beiträgen

Verfasst: 08.06.2007 19:40
von dieweltist
Die Datenbankgröße verringert sich nicht

Selbt wenn z.B. mehrere Beiträge im Forum gelöscht wurden, kann es sein, dass sich die Datenbankgröße nicht verringert. Dieser Artikel beschreibt wieso und zeigt, wie die Datenbankgröße verringert werden kann.

Werden aus einer MySQL-Tabelle Datensätze gelöscht, so werden diese i.d.R. zwar von MySQL als gelöscht markiert, der Speicherplatz wird jedoch nicht freigegeben. Werden neue Datensätze erstellt, so füllt MySQL zuerst diese als gelöscht markierten Bereiche, bevor die Datenbank vergrößert wird. [...]
Weiterlesen...

Als ich diesen Beitrag las, war ich über MySQL doch sehr erschüttert. Kann es sein, dass ein Board fehlerhaft programmiert ist, wenn eine Datenbank so ein Verhalten zeigt, dass es die Datenbankgröße nicht verringert? Oder verringert sie ihre Größe vielleicht doch irgendwann, auch ohne dass man entsprechend nachhilft?

Mit meinem phpBB3 hatte ich heute getestet, ob die Beiträge auch in der Datenbank gelöscht werden. (Unter >[Präfix_]posts - Anzeigen - Alle auswählen<.) Es zeigte sich, dass jedes Löschen eines Beitrages im Forum auch den Beitrag in der Datenbank löschte. Datenbank "MySQL with MySQLi Extension". Auch, als ich noch das Board UNB mit MySQL installiert hatte, war das auch so.

Verfasst: 09.06.2007 04:43
von bantu
Unter Umständen werden beim Löschen die Daten nur als gelöscht markiert und nicht physikalisch gelöscht. Das ist vollkommen normal für eine Datenbank und nicht ein Fehler der Programmierung. Du kannst die Daten mit OPTIMIZE (wie im Artikel beschrieben) löschen.

Die als gelöscht markierten Daten werden dir meist als als "Überhang" angezeigt.

Verfasst: 09.06.2007 07:32
von dieweltist
Wenn das für eine Datenbank völlig normal ist, bedeutet das also, dass sie irgendwann bzw. unter bestimmten Umständen die Größe von selbst dann doch verringern würde. Andernfalls wäre es doch nicht normal. :-?

Verfasst: 09.06.2007 10:34
von bantu
Aus Performancegründen kann es in bestimmten Situationen besser sein, die Tabellen nicht zu optimieren. Meines Wissens macht das aber Olympus nach einiger Zeit.