MySql ALTER TABLE о продуктовых базах данных - любые вопросы?
У меня около 100 баз данных (одинаковая структура, только на разных серверах) с примерно десятком таблиц. Большинство таблиц небольшие (скажем, 100 МБ или меньше). Есть случайные крайние случаи, когда таблица может быть большой (скажем, 4 ГБ +).
Мне нужно запустить серию команд ALTER TABLE примерно для каждой таблицы в каждой базе данных. В основном добавление некоторых строк в структуру, но несколько изменений, таких как изменение строки из varchar в tinytext (или наоборот). Кроме того, добавление нескольких новых индексов (но индексация новых строк, а не существующих, поэтому предполагая, что это не большая сделка).
Мне интересно, как это безопасно, и если есть какие-то лучшие методы для этого процесса.
Во-первых, есть ли вероятность, что я могу повредить или удалить данные в таблицах. Я подозреваю, что нет, но нужно быть уверенным.
Во-вторых, я полагаю, что для больших таблиц (4 ГБ +) это может быть от нескольких минут до нескольких часов?
Все, что я должен знать о выполнении команд ALTER TABLE в производственной базе данных, мне интересно узнать.
Если он знает какое-либо значение, я планирую выпустить команды через PHPMYADMIN по большей части.
Спасибо -
Ответы
Ответ 1
Прежде чем применять какие-либо смены, сделайте резервные копии. Два способа сделать это: mysqldump
все или вы можете скопировать папку данных mysql.
Во-вторых, вы можете использовать mysql
из командной строки. PHPMyAdmin, вероятно, отключится. Большинство серверов PHP имеют тайм-аут менее 10 минут. Или вы случайно закроете браузер.
Ответ 2
Вот мое предложение.
-
Вы можете выполнить провал приложений (убедитесь, что нет соединений на всех dbs).
-
Вы можете создавать индексы с помощью "create index statements". Не используйте команды alter table add index.
-
Сделайте все это с помощью script like (сохраните все эти утверждения в файле и запустите из источника).
-
Похоже, размеры таблиц очень малы, поэтому он не будет создавать головную боль.