У нас есть ситуация, когда у нас есть таблица A и B, где A имеет несколько тысяч строк (около 50k) и B имеет несколько миллионов строк (приблизительно 5M). Таблица B содержит столбец, который указывает на первичный ключ таблицы A. Нам нужно добавить столбец в таблицу A, и они обеспокоены тем, что в то время, когда выполняется команда alter, возможно, она имеет блокировку чтения в таблице B.Mysql Изменение времени таблицы в зависимости от наличия внешних ключей
Мой первый вопрос: правда ли, что таблица B будет заблокирована при изменении таблица A? И если да, было бы лучше сначала отбросить внешний ключ от B до A, а затем запустить инструкции alter и впоследствии воссоздать внешний ключ.
Мы используем MySQL 5.5, InnoDB и отдельные файлы для каждой таблицы.
Лично я бы рекомендовал удалить ограничение внешнего ключа, когда размер стола большой. Это замедлит процесс. И, во-вторых, во время таблицы изменений копия таблицы делается внутри, и если успешно, старая таблица заменяется новой. Так что чтение-замок имеет смысл для меня. – georgecj11