Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MyDAC: BLOB Feld richtig löschen (https://www.delphipraxis.net/154329-mydac-blob-feld-richtig-loeschen.html)

CG2003 6. Sep 2010 22:48

Datenbank: MySQL • Version: 5 • Zugriff über: MyDAC

MyDAC: BLOB Feld richtig löschen
 
Hallo,

ich habe eine Tabelle die folgendermaßen aufgebaut ist:

DATEINAME (VARCHAR) DATEI (BLOB)



Nun kann ich prima Dateien hinzufügen und entfernen, allerdings wenn ich mittels DELETE FROM ... einen Eintrag lösche, wird der Eintrag zwar gelöscht, aber die Datenbank nicht kleiner.

Kann es sein, dass die BLOB-Felder mit den "Dateien" nicht richtig gelöscht werden?
Wenn ja, wie lösche ich diese richtig? Habe schon gegoogelt und die Suche benutzt und nichts gefunden.


Vielen Dank im Voraus!

Bernhard Geyer 7. Sep 2010 07:23

AW: MyDAC: BLOB Feld richtig löschen
 
Kleiner werden die meisten Datenbank(-dateien) nicht. Der Plattenplatz des gelöschten Datensatzes ist aber als leer markiert und wird für neuen Datensätze verwendet. Es wäre für DB's performancemäßig kontraproduktiv bei jeder löschaktion auch die DB-Dateien so zu reorganisieren das freier Plattenplatz entsteht.

mkinzler 7. Sep 2010 07:30

AW: MyDAC: BLOB Feld richtig löschen
 
Zum Thema MySQL Database shrink:
http://forums.mysql.com/read.php?35,...886#msg-121886

CG2003 7. Sep 2010 07:39

AW: MyDAC: BLOB Feld richtig löschen
 
Also habe ich das richtig verstanden, dass der Plattenplatz des gelöschten BLOB-Feldes quasi für neue Datensätze verwendet wird?
Nicht dass die Datenbank so immer weiter wächst.

Hansa 7. Sep 2010 07:51

AW: MyDAC: BLOB Feld richtig löschen
 
Mir ist keine Datenbank bekannt, bei der das anders ist. Nach dem "Löschen" wird der "freie" Speicherplatz neu verwendet und fertig. Ausserdem : was kostet heute ein Gigabyte ? 0,1 EUR ?? :shock:

shmia 7. Sep 2010 18:01

AW: MyDAC: BLOB Feld richtig löschen
 
Zitat:

Zitat von Hansa (Beitrag 1047931)
Mir ist keine Datenbank bekannt, bei der das anders ist.

MS SQL Server kann durch Setzen der "AutoShrink" Option die Datenbanken verkleinern.
In der Praxis kann das aber Probleme (z.B. starke Fragmentierung) verursachen; die Empfehlung ist AutoShrink nicht zu benutzen.

Zitat:

Zitat von CG2003
Nicht dass die Datenbank so immer weiter wächst.

Man sollte die Datenbank(en) periodisch warten (komprimieren, evtl. Index neu aufbauen,...).
Man könnte dazu z.B. am Sonntag 3:00Uhr ein MYSQL-Script anstarten.

CG2003 9. Sep 2010 12:44

AW: MyDAC: BLOB Feld richtig löschen
 
Super, vielen Dank!
Das mit der DB-Wartung ist an sich ja nicht das Problem. Mit dem richtigen SQL-Script und einem geplanten Task sollte das auch problemlos möglich sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 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