Zmiana dużych tabel MySQL InnoDB

Dodanie nowej kolumny lub dodanie nowego indeksu może zająć godziny i dni dla dużych tabel innodb w MySQL z ponad 10 milionami wierszy. Jaki jest najlepszy sposób na zwiększenie wydajności dużych tabel innodb w tych dwóch przypadkach? Więcej pamięci, ulepszanie konfiguracji (na przykład zwiększaniesort_buffer_size lubinnodb_buffer_pool_size), czy jakaś sztuczka? Zamiast bezpośrednio modyfikować tabelę, można utworzyć nową, zmienić ją i skopiować stare dane, takie jak to, które jest przydatne dlaTabele ISAM iwiele zmian:

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;

Czy jest to również zalecane dla tabel innodb, czy jest to po prostu to, co komenda ALTER TABLE wykonuje dalej?

questionAnswers(2)

yourAnswerToTheQuestion