Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL Überhang Verständnisfrage (https://www.delphipraxis.net/92737-mysql-ueberhang-verstaendnisfrage.html)

TUX_der_Pinguin 25. Mai 2007 07:43

Datenbank: MySQL • Version: 5.1 • Zugriff über: dbExpress

MySQL Überhang Verständnisfrage
 
Hallo,

was ich mich frage was dieser "Überhang" genau ist den z.b. phpMyAdmin oder auch andere Tools anzeigen.
Ich weiß das ich den Überhang mit "OPTIMIZE TABLE 'table'" beseitigen kann, nur fragte ich mich immer
ob es an der Tabelle selbst liegt, sprich das man etwas falsch gemacht hat mit den Datentypen oder
anderen Tabellen Einstellungen.

Nach ein bisschen Suchen bin ich drauf gestoßen das es mit der Fragmentierung zu tun hat, also sehe ich das
richtig das man diesen Überhang nicht vermeiden kann? Und kann man das wie bei dem Dateisystem verstehen
das der Überhang ähnnlich wie ungenutze cluster bzw. sektoren auf der Festplatte sind und ein OPTIMIZE
die Tabelle wieder defragmentiert.

Es geht mir einfach nur um das Verständnis und ob man es verhindern kann das ein Überhang entsteht, wenn
nicht lasse ich in regelmäßigen abständen ein OPTIMIZE TABLE über alle Tabellen laufen.

mfg

TUX

Phoenix 25. Mai 2007 08:46

Re: MySQL Überhang Verständnisfrage
 
Das ist recht easy: Um schneller zu sein geht MySQL z.B. beim Löschen von Datensätzen nur her, und markiert die Datensätze als gelöscht; reorganisiert aber nicht die Tabelle. Du hast danach also 'Lücken' in der Tabelle, die irgendwann mal wieder aufgefüllt werden können - aber nicht müssen. Ist ähnlich wie die natürliche Fragmentierung auf einem Dateisystem.

Bei einem Optimize werden diese Lücken explizit aufgefüllt und verbrauchen daher dann nicht mehr unnötig Platz.

Wie gesagt: Das ganze hat einfach Geschwindigkeit als Grund, denn wenn die DB bei jedem Löschen die Datenstruktur neu organisieren würde, dann würde das immer ziemlich lange dauern.

Einmal im Monat ein Optimize sollte an und für sich reichen. Mehr ist nicht nötig. Die paar KB / MB die da brachliegen sind in den Zeiten heutiger Plattengrößen eher marginal ;-)

TUX_der_Pinguin 25. Mai 2007 10:15

Re: MySQL Überhang Verständnisfrage
 
Okay, dann habe ich das ganze richtig verstanden war mir halt nicht sicher und von
früher her hatte ich immer die frage im Kopf was das genau auf sich hat.

Naja da ich wohl eh vorhabe jede nach eine routine laufen zulassen die ein paar
dinge erledigt kann ich dabei ja auf jede tabelle ein optimze fahren.

Vielen dank für die Hilfe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz