Требуется добавить новый столбец со значением по умолчанию varchar(1), где таблица содержит более 75 миллионов записей. Выполнил тесты в среде perf, все прошло нормально за 40 минут, но живого трафика нет. Можем ли мы как-то ускорить это? Может ли отключение индексов в таблице ускорить выполнение команды alter?
Команда Alter в базе данных Aurora (добавить новый столбец)
Ответы (1)
Отключение индексов может помочь, но когда вы снова включите индексы, их придется перестроить, что также займет много времени. Я не думаю, что вы сэкономите время в конце концов.
Но я бы рекомендовал научиться использовать pt-online -изменение-схемы. Это инструмент, который запускает изменения схемы в фоновом режиме, так сказать, в то время как ваше приложение может продолжать читать и записывать исходную таблицу.
Вероятно, потребуется больше времени, чтобы запустить альтер. Но вы не возражаете, потому что простоев нет. Скажем, это занимает два часа вместо 40 минут. Это нормально, потому что приложению не нужно ждать завершения изменения схемы.
На моей работе мы запускаем сотни изменений схемы в неделю без простоев. Инструмент изменения схемы действительно должен кратковременно блокировать таблицу в начале и в конце своей работы.