"Kris, kannst Du bitte mal gucken?"
Seit heute morgen, 10:00 Uhr, wächst das Undo Log immer weiter
an.
Immer wenn InnoDB Daten schreibt wird die alte Version einer
Zeile aus der Tabelle in das Undo-Log verschoben, also
physikalisch von der ibd-Datei der Tabelle in die ibdata1 im
Datadir von MySQL. In der Tabelle wird in der veränderten Zeile
ein Zeiger von der neuen Version auf die alte Version der Zeile
im Undo-Log installiert, der Roll(back)-Pointer. Die alte Version
im Undo-Log zeigt mit ihrem eigenen Roll-Pointer auf eine noch
ältere Version derselben Zeile und so weiter - es entsteht für
jede Zeile in der Datenbank eine lineare Liste von Versionen in
die Vergangenheit einer Row.
Der InnoDB Purge Thread hat die Aufgabe, das Undo Log zu
verkürzen. Wenn er das nicht tut, dann sieht das so aus wie oben
im Graphen gezeigt. Dafür kann es zwei Gründe geben: Purge Lag -
also mehr Writes als der Purge Thread …
[Mehr]