Datenbank komprimieren?

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

  1. sirtet
    sirtet Erfahrener Benutzer
    Registriert seit:
    4. Juli 2012
    Beiträge:
    1.131
    Danke erhalten:
    89
    Danke vergeben:
    90
    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.311
    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.434
    Danke erhalten:
    141
    Danke vergeben:
    185
    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.311
    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.434
    Danke erhalten:
    141
    Danke vergeben:
    185
    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.824
    Danke erhalten:
    981
    Danke vergeben:
    312
    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.657
    Danke erhalten:
    11.371
    Danke vergeben:
    1.616
    Löschen kann man den auch, wie die anderen im Admin.
     
  8. sirtet
    sirtet Erfahrener Benutzer
    Registriert seit:
    4. Juli 2012
    Beiträge:
    1.131
    Danke erhalten:
    89
    Danke vergeben:
    90
    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.311
    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.657
    Danke erhalten:
    11.371
    Danke vergeben:
    1.616
    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.311
    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.657
    Danke erhalten:
    11.371
    Danke vergeben:
    1.616
    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.824
    Danke erhalten:
    981
    Danke vergeben:
    312
    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.131
    Danke erhalten:
    89
    Danke vergeben:
    90
    @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.657
    Danke erhalten:
    11.371
    Danke vergeben:
    1.616
    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.824
    Danke erhalten:
    981
    Danke vergeben:
    312
    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.