Optimize Table InnoDB sehr langsam

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Optimize Table InnoDB sehr langsam

    Guten Morgen zusammen,

    hin und wieder führe ich ein optimize Table auf einer InnoDB Tabelle durch.
    Diese Tabelle umfasst ca. 6 Mio. Datensätze, der Speicherverbrauch liegt bei rund 1,2 GB.

    Optimize dauert hier jedoch sehr lange (~ 25 Minuten).

    Im Percona Forum habe ich gelesen, man könne sich hier mit einem kleinen Trick behelfen, nämlich erst die Indizes entfernen, optimizen, Indizes hinzufügen. Jedoch habe ich auch gelesen, dass MySQL hier ein LOCK Tables setzt.

    Gibt es noch andere Möglichkeiten, diesen Vorgang zu beschleunigen und / oder auf ein Lock Tables zu verzichten? Ist letzteres, sofern überhaupt möglich, sinnvoll oder aber gefährlich?

    Wenn ich richtg informiert bin ist ein Optimize erforderlich, um nach Löschvorgängen freigewordenen Speicher auch freizugeben. Dies sollte ich eigentlich täglich einmal machen, aber durch die verbundene Downtime der Tabelle mache ich das dann nur alle paar Wochen. Da ich so langsam aber sicher mit immer mehr Daten zu tun habe, suche ich nach einer anderen Lösung.

    Ist da jemandem etwas bekannt? Anderer Ansatz? Schnellerer Ansatz?

    Bin für jeden Hinweis zu haben ;-)

    Danke und Gruß
    Boris

  • #2
    Zitat von Ghostrider28 Beitrag anzeigen
    Guten Morgen zusammen,

    hin und wieder führe ich ein optimize Table auf einer InnoDB Tabelle durch.
    Diese Tabelle umfasst ca. 6 Mio. Datensätze, der Speicherverbrauch liegt bei rund 1,2 GB.
    Wofür machst Du das?

    Normalerweise ist das bei INNODB nur notwendig, wenn du die Option innodb_file_per_table aktiviert hast, was zumindest nicht der Standard ist oder du 'nen Fulltext Index drauf hast (betrifft meines Wissens dann aber auch nur MySQL >= v5.6).
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Wofür machst Du das?
      MySQL scheint den freigewordenen Speicher nicht freizugeben, es sei denn, ich führe ein Optimize durch.

      innodb_file_per_table aktiviert hast
      Genau diese Option habe ich aktiviert, da mir sonst die ibdata "überläuft". Dies ist 31 GB groß, bei einer 1,2 GB Datenbank.

      Bezug, folgender stackoverflow Beitrag:

      database - How to shrink/purge ibdata1 file in MySQL - Stack Overflow

      Ich verwende die Version 5.6.22.

      Kommentar

      Lädt...
      X