MySQL-performance beim hinzufügen einer Spalte zu einer großen Tabelle

Ich habe MySQL 5.5.37 mit InnoDB lokal installiert mit apt-get auf Ubuntu 13.10. Mein Rechner i7-3770 + 32Gb Speicher + SSD Festplatte auf meinen desktop. Für eine Tabelle "mytable", die enthält nur 1,5 Millionen Datensätze der folgenden DDL-Abfrage dauert mehr als 20 min (!):

ALTER TABLE mytable ADD some_column CHAR(1) NOT NULL DEFAULT 'N';

Gibt es eine Möglichkeit, es zu verbessern?
Ich überprüfte

show processlist;

war und es zeigt, dass es das kopieren von meinem Tisch aus irgendeinem Grund.
Es ist verstörend unbequem. Gibt es eine Möglichkeit zu deaktivieren diese Kopie?
Gibt es andere Möglichkeiten um die Leistung zu verbessern, das hinzufügen einer Spalte zu einem großen Tisch?

Anderes, als dass meine DB ist relativ klein mit nur 1,3 Gb dump-Größe. Daher sollte es (theoretisch) passen 100% in den Speicher.

Gibt es Einstellungen, die helfen können?
Würde die migration zu Precona nichts ändern für mich?

Hinzufügen: ich habe

innodb_buffer_pool_size = 134217728
Obwohl es in den Hauptspeicher paßt, es zu schreiben, hat alles wieder auf die Festplatte um Sie permanent zu machen.
mögliche Duplikate von "optimieren" mySql-für eine schnellere alter table add column
Sie reden MyISAM vs InnoDB für mich

InformationsquelleAutor Artem | 2014-07-09

Schreibe einen Kommentar