Добавить новый столбец в большой таблице MySQL

Какой самый быстрый способ добавить новый столбец в большую таблицу MySQL?

Столбец «Изменить таблицу» создает копию полной таблицы, а затем заменяет старую новой таблицей создания. Пока этот процесс выполняется, исходная таблица доступна для чтения, но все вставки и обновления останавливаются.

На больших таблицах копирование может занять много времени, есть ли способ уменьшить его?

 Peter Lamberg02 окт. 2012 г., 12:07
Рассмотрите возможность настройки innodb_log_file_size (но будьте осторожны, смотритеmysqlperformanceblog.com/2011/07/09/…) и innodb_log_buffer_size. Для получения дополнительной информации см. Мой ответ здесь:stackoverflow.com/a/12688184/1148030
 B T19 мая 2011 г., 20:38
Связанный вопрос:stackoverflow.com/questions/1645215/…

Ответы на вопрос(3)

Copy {Existing Table} to {New Table} with no data (schema only) Use Alter table commands to add/alter columns on NEW table (should work in a flash) MYSQLDUMP existing table (using single-transaction, --no-drop-table, etc) to file import dump file into {New Table} (this, may take awhile, but old table still usable during this period) during maintenance period, DROP {Old Table} and rename {New Table} to previous {Old Table}.

те это, пока вы выключаете систему для регулярного технического обслуживания.

 Maraino19 июн. 2009 г., 00:38
Можно выполнить обновление в подчиненном блоке, но существует ли какой-либо способ, не связанный с ручным управлением, воссоздавать обновления на реальном? двоичный журнал или что-то в этом роде. Ручной способ будет регистрировать каждую вставку или обновление и применять в том же порядке.
Решение Вопроса

делая ALTER TABLE. Наилучший способ эффективно справиться с этим - использовать установку MASTER-MASTER.

Вы можете сначала изменить MASTER1 и просто использовать MASTER2 в производстве. Затем вы переключаетесь и делаете прямо противоположное.

Ваш ответ на вопрос