Команда Alter в базе данных Aurora (добавить новый столбец)

Требуется добавить новый столбец со значением по умолчанию varchar(1), где таблица содержит более 75 миллионов записей. Выполнил тесты в среде perf, все прошло нормально за 40 минут, но живого трафика нет. Можем ли мы как-то ускорить это? Может ли отключение индексов в таблице ускорить выполнение команды alter?


person user6163241    schedule 15.03.2021    source источник


Ответы (1)


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

Но я бы рекомендовал научиться использовать pt-online -изменение-схемы. Это инструмент, который запускает изменения схемы в фоновом режиме, так сказать, в то время как ваше приложение может продолжать читать и записывать исходную таблицу.

Вероятно, потребуется больше времени, чтобы запустить альтер. Но вы не возражаете, потому что простоев нет. Скажем, это занимает два часа вместо 40 минут. Это нормально, потому что приложению не нужно ждать завершения изменения схемы.

На моей работе мы запускаем сотни изменений схемы в неделю без простоев. Инструмент изменения схемы действительно должен кратковременно блокировать таблицу в начале и в конце своей работы.

person Bill Karwin    schedule 15.03.2021
comment
Спасибо Билл. это бесплатный инструмент для использования? Где это запустить? - person user6163241; 29.03.2021
comment
Лицензия находится в документации, на которую я ссылаюсь. Вы можете запустить его везде, где можно запустить клиент командной строки MySQL. - person Bill Karwin; 29.03.2021