Добавление нового столбца или добавление нового индекса может занимать часы и дни для больших таблиц innodb в MySQL с более чем 10 миллионами строк. Каков наилучший способ повысить производительность на больших таблицах innodb в этих двух случаях? Больше памяти, настройка конфигурации (например, увеличение sort_buffer_size или innodb_buffer_pool_size), или некоторые трюк? Вместо прямого изменения таблицы можно было создать новую, изменить ее и скопировать старые данные, как это, что полезно для таблиц ISAM и несколько изменений:
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;
Рекомендуем ли вы также использовать таблицы innodb или это просто команда ALTER TABLE?