2012-04-09 4 views
2

У меня есть база данных MySQL . Когда я экспортирую дамп SQL, как происходит блокировка? Блокируется ли вся база данных во время экспорта? Или просто стол? Или просто отдельные строки? Как работает экспорт с InnoDB?Блокировка таблицы MySQL InnoDB при экспорте

ответ

0

Вы можете управлять тем, что заблокировано.

Чтобы быть безопасным, вы можете блокировать все таблицы, как это:

mysqldump --lock-all-tables 

Docs: Блокировка всех таблиц во всех базах данных. Это достигается путем приобретения глобальной блокировки чтения в течение всего дампа. Эта опция автоматически отключает --single-transaction и -lock-tables.

Или, если вы уверены, что вы не собираетесь изменять таблицы:

mysqldump --single-transaction 

Docs: В то время как свалка --single-транзакция находится в процессе, чтобы обеспечить правильный файл дампа (правильный стол содержимое и бинарные логические координаты), никакое другое соединение не должно использовать следующие операторы: ALTER TABLE, CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE. Согласованное чтение не изолировано от этих утверждений, поэтому использование их в таблице, которую нужно сбрасывать, может вызвать SELECT, который выполняется mysqldump для извлечения содержимого таблицы для получения неправильного содержимого или сбоя.

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