2012-04-13 4 views
2

Какие параметры у меня есть для импорта таблицы MySQL с помощью механизма InnoDB, где эта таблица уже существует, без потери доступа для чтения к существующей таблице? В общем, я имею в виду ситуации, когда ALTER TABLE действительно медленный, и вместо этого я хочу сбросить таблицу, изменить дамп, а затем импортировать его.Импортирование дампа MySQL InnoDB без таблиц блокировки

Если я использую mysqldump, чтобы сделать дамп, тогда, когда я вставляю его, он отбрасывает таблицу перед вставкой, поэтому доступ на чтение, конечно, теряется до тех пор, пока импорт не будет завершен.

Могу ли я просто изменить имя табуляции в дампе, импортировать его, затем, когда это будет сделано, отбросьте старую таблицу и переименуйте новую? Есть ли способ лучше? Заранее спасибо.

ответ

1

Если ваша таблица имеет одинаковую структуру, я не вижу никаких проблем. Вам нужно просто пропустить оператор «DROP TABLE». Почти все самосвалы имеют возможность не включать DROP TABLE/CREATE TABLE в свалки. Лично я бы порекомендовал Sypex Dumper.

Если вы хотите изменить структуру таблицы без блокировки таблицы, я думаю, что лучший способ заключается в использовании pt-online-schema-change - ALTER tables without locking them

+0

Спасибо, я буду запускать тест с Sypex Dumper. Не может пойти не так, как за 10 долларов! – melkamo

+1

@melkamo У этого есть бесплатная версия. И этого достаточно для большинства потребностей;) –

Смежные вопросы