Добавить новый столбец в большой таблице mysql
Каким будет самый быстрый способ добавить новый столбец в большую таблицу mysql?
В столбце "Добавить столбец" создается копия полной таблицы, а затем старая старая таблица создается. Пока этот процесс запущен, исходная таблица читаема, но все вставки и обновления застопорились.
На больших таблицах копия может занять много времени, есть ли способ ее уменьшить?
Ответы
Ответ 1
Вы застряли, выполняя ALTER TABLE. Лучшим способом эффективного решения этой проблемы является использование установки MASTER-MASTER.
Вы можете сначала изменить MASTER1 и просто использовать MASTER2 в процессе производства. Затем вы переключаетесь и делаете точную противоположность.
Ответ 2
Не используйте это в активной системе. Для активной системы сделайте это, пока вы берете систему для регулярного обслуживания.
Ответ 3
Предполагая таблицу INNODB:
- Скопировать {существующая таблица} в {Новая таблица} без данных (только для схемы)
- Использовать команды таблиц Alter для добавления/изменения столбцов в таблице NEW (должно работать со вспышкой)
- существующая таблица MYSQLDUMP (с использованием транзакции single-transaction, -no-drop-table и т.д.) в файл
- импортировать файл дампа в {New Table} (это может занять некоторое время, но старый стол еще можно использовать в течение этого периода)
- в течение периода обслуживания, DROP {Старая таблица} и переименовать {Новая таблица} в предыдущую {Старую таблицу}.