AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MySQL Überhang Verständnisfrage
Thema durchsuchen
Ansicht
Themen-Optionen

MySQL Überhang Verständnisfrage

Ein Thema von TUX_der_Pinguin · begonnen am 25. Mai 2007 · letzter Beitrag vom 25. Mai 2007
Antwort Antwort
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#1

MySQL Überhang Verständnisfrage

  Alt 25. Mai 2007, 07:43
Datenbank: MySQL • Version: 5.1 • Zugriff über: dbExpress
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
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.610 Beiträge
 
#2

Re: MySQL Überhang Verständnisfrage

  Alt 25. Mai 2007, 08:46
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
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: MySQL Überhang Verständnisfrage

  Alt 25. Mai 2007, 10:15
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz