Ändern großer MySQL InnoDB-Tabellen

Das Hinzufügen einer neuen Spalte oder eines neuen Index kann Stunden und Tage für große Innodb-Tabellen in MySQL mit mehr als 10 Millionen Zeilen dauern. Wie lässt sich in diesen beiden Fällen die Leistung großer Innodb-Tabellen am besten steigern? Mehr Speicher, Ändern der Konfiguration (z. B. Erhöhen dersort_buffer_size oderinnodb_buffer_pool_size) oder eine Art Trick? Anstatt eine Tabelle direkt zu ändern, könnte man eine neue erstellen, sie ändern und die alten Daten in die neuen kopieren, wie dies nützlich istISAM-Tabellen undmehrfache Änderungen:

CREATE TABLE tablename_tmp LIKE tablename;
ALTER TABLE tablename_tmp ADD fieldname fieldtype;
INSERT INTO tablename_tmp SELECT * FROM tablename;
ALTER TABLE tablename RENAME tablename_old;
ALTER TABLE tablename_tmp RENAME tablename;

Ist es auch für Innodb-Tabellen empfehlenswert, oder ist es genau das, was der Befehl ALTER TABLE tut?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage