Как быстро добавить новую колонку в большую таблицу (4млн+ строк)?
Есть сервер БД mysql (5.5.40), там таблица весом ~500 мб, в ней ~4 300 000 записей.
Задача: добавить новую колонку.
Вариант решения №1
1. Сделать копию структуры tablename в tablename_copy
2. В tablename_copy добавить колонку
3. Сделать instert данных из tablename в tablename_copy
4. Переименовать tablename в tablename_old
5. Переименовать tablename_copy в tablename
Возможно сделать это по-другому?
Сколько должно занимать времени добавление новой колонки "в лоб"?
4млн строк - это не много. Если конечно там не 100 столбцов и столько же индексов.
Движок таблицы то какой??
В любом случае с офлайном можно (наверное самый быстрый способ) это ваш вариант перечисленный в вопросе с одним отличием. Пунк 3 заменить на mysqldump с последующей корректировкой "шапки" дампа в соответствии с измененной структурой новой таблицы, дропнуть исходную и отресторить таблицу в новом виде (переименовывать ничего не надо). Из практики использования мускула на слабых серверах с ограниченными ресурсами могу сказать, что быстрее чем дамп - никакая другая процедура такие манипуляции не делает.