Datenbank komprimieren?

Thema wurde von sirtet, 17. März 2021 erstellt.

  1. sirtet

    sirtet Erfahrener Benutzer

    Registriert seit:
    4. Juli 2012
    Beiträge:
    1.114
    Danke erhalten:
    88
    Danke vergeben:
    88
    Gibt es eine Möglichkeit die Datenbank zu verkleinern/komprimieren?

    Ich bin gerade recht viel am testen und muss immer wieder die DB neu aufsetzen. Das dauert, denn ein SQL-Dump meiner DB ist momentan 330mb gross.
    Ic bin mir sicher ich hab nicht so viel Content, sondern ich vermute das ist wohl grossteils Cache?
    Gibt es eine Möglichkeit, die DB zu komprimieren? Nicht zip packen oder so meine ich, sondern nicht unbedingt nötige Daten löschen...
     
  2. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Ohne ganz genau zu wissen was man da macht, nein.
     
  3. marit

    marit Erfahrener Benutzer

    Registriert seit:
    7. März 2014
    Beiträge:
    1.377
    Danke erhalten:
    122
    Danke vergeben:
    175
    Ich weiß nicht, ob es bei jedem Hoster geht, aber ich kann die Datenbank innerhalb von Plesk dumpen und entpacken bzw. kopieren. Das geht ruckizucki. Brauchst du immer die Kopie der gerade frischsten Datenbank? Sonst könntest du dir ja auch einfach ein zip ins Backup legen, das du bei Bedarf entpackst. Obwohl ich nicht weiß, ob das schneller geht als ne Kopie.

    Cache gibts nur im Dateiverzeichnis, oder, WIlken?
     
  4. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Nein, es gibt auch datenbankbasierte Caches, wie zum Beispiel den Sprachcache oder den Eigenschaftencache.
     
  5. marit

    marit Erfahrener Benutzer

    Registriert seit:
    7. März 2014
    Beiträge:
    1.377
    Danke erhalten:
    122
    Danke vergeben:
    175
    Ei, ei ! Und könnte man den auch löschen? Oder muss der?
     
  6. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.675
    Danke erhalten:
    878
    Danke vergeben:
    288
    Der muss.. ohne läuft der Shop ohne irgendwelche Texte.
     
  7. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Löschen kann man den auch, wie die anderen im Admin.
     
  8. sirtet

    sirtet Erfahrener Benutzer

    Registriert seit:
    4. Juli 2012
    Beiträge:
    1.114
    Danke erhalten:
    88
    Danke vergeben:
    88
    Ich hab mal das gemacht:
    Code:
    SELECT table_name AS "Table",
    ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)"
    FROM information_schema.TABLES
    WHERE table_schema = "MEIN_______DB______NAME"
    ORDER BY (data_length + index_length) DESC;
    Da sieht man dann, dass der Text-Cache zwar die drittgrösste Tabelle ist aber gerade mal 7mb gross.
    Die Übeltäter sind die Tabellen emails 155mb & orders 120mb

    @Wilken (Gambio), wenn ich für's Testen keine History brauche, kann ich die beiden gefahrlos leeren, oder?
    (oder alles rauslöschen was älter als X ist)?


    PS:
    Wenn ein Shop lange läuft und viele Transaktionen hat, wird das ja schnell viel zu gross.
    Ist da kein Weg vorgesehen wie man vergangene Bestellungen und die Mails dazu archivieren kann?
     
  9. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Nein.

    Beiden Tabellen haben Kontexte zu anderen Tabellen und können ausreichend Relationen erzeugen, die dann ins Leere laufen und Fehler erzeugen.

    Nein, weil das in 90% der Fälle keine Geige spielt und mehr aufheben oft besser ist.
     
  10. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Also zumindest E-Mails sollte man Archivieren können.
    Ich habe eine Kundin, die auch Newsletter versendet und die werden alle dort gespeichert.
    Das hat zur Folge, dass die Datenbanksicherung (z.B. mit dem MyOOSdumper) bei den E-Mails abbricht.
    Nicht mal eine Sicherung nur der Tabelle "E-Mails" ging durch.

    Jeder Händler muss seine E-Mails ohnehin Archivieren und bis zu 10 Jahren aufheben.
    Alle Mails die älter sind als 4 oder 5 Jahre, sind für den laufenden Betrieb aber kaum noch relevant, die könnte man durchaus in eine Archiv-Tabelle verlegen.
    Und es sollte eine Möglichkeit geben alle Mails, die älter sind als 10 oder 11 Jahre, zu löschen
    Ebenso Bestellungen die dieses Alter erreicht haben.
    Kein gut laufender Shop kann das manuell aus dem Admin heraus erledigen, nur um z.B. die Datenschutzrichtlinien einzuhalten.
     
  11. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Das stellt die eigentlich interessante Frage: Sollte es die Option geben einen Mailversand zu machen, der gar nicht erst archiviert wird? Es ginge also nicht darum die Archivierten schnell zu beseitigen, sondern bestimmte Mails überhaupt niemals zu archivieren. Das ist rechtlich aber auch alles kompliziert.
     
  12. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Vielleicht würd es schon reichen die Newsletter-Mails in eine eigene Tabelle zu packen.
    Vielleicht mit einer Funktion alle NL-Mails mit Datum X zu löschen.
    Damit wären die "normalen" E-Mails übersichtlicher und Newsletter-Mails aufräumbar
     
  13. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.675
    Danke erhalten:
    878
    Danke vergeben:
    288
    Nein, kann man nicht, der wird sofort wieder neu aufgebaut auf Basis der Sprachdateien.
     
  14. sirtet

    sirtet Erfahrener Benutzer

    Registriert seit:
    4. Juli 2012
    Beiträge:
    1.114
    Danke erhalten:
    88
    Danke vergeben:
    88
    @Wilken (Gambio) , barbara widerspricht dir von wegen Mails löschen... Einerseits dass man das sehr wohl könne, andererseits, dass sie tatsächlich auch schon Probleme hatte mit zu grosser DB...

    DB-Grösse:
    Hat barbara da den zweiten einzigen Fall wo die DB-Grösse ein Problem ist, oder will das Gambio vielleicht doch mal überlegen, ob man nicht eine archiv/lösch/export- Funktion machen will/kann?

    Tabellen leeren:
    Kannst du vielleicht etwas konkreter dazu sagen, wo es beim löschen Probleme geben könnte, an was für Verknüpfungen du denkst? Kann mir gerade nicht vorstellen, wo ausser beim anschauen von Kunden und Bestellungen das Fehler auslösen könnte.
    Ich will ja in einer Kopie löschen, die ich für Tests brauche, und zwar im Bereich Artikelverwaltung und neue Bestellungen.
     
  15. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Trotzdem wird er einmal gelöscht - auch wenn er gleich wieder aufgebaut wird.
    Wenn man ihn nicht löschen könnte, würde man auch keine alten Einträge loswerden.

    Die anderen bauen sich ja auch wieder auf - nur nicht ganz so schnell. :)
     
  16. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.675
    Danke erhalten:
    878
    Danke vergeben:
    288
    Es geht aber doch darum Platz in der Datenbank zu schaffen. Genau das geht damit nicht, denn der Textcache wird sofort wieder neu aufgebaut. Spart also keinen Platz, ausser wenn man Sprachen gelöscht hat. Was man bei Deutsch und Englisch niemals machen sollte.