Мне периодически нужно вносить изменения в таблицы в MySQL 5.1, в основном добавляя столбцы. Очень просто с помощью команды alter table. Но в моих таблицах сейчас до 40 миллионов строк, и они быстро растут ... Так что эти команды изменения таблицы занимают несколько часов. Я думаю, через пару месяцев они займут дни.
Поскольку я использую amazon RDS, у меня не может быть подчиненных серверов, с которыми можно поиграть, а затем повысить их до мастерства. Итак, мой вопрос: есть ли способ сделать это с минимальным временем простоя? Я не возражаю против операции, занимающей часы или даже дни, если пользователи все еще могут использовать БД, конечно ... Могут ли они хотя бы читать, когда добавляются столбцы? Что произойдет, если мое приложение попытается написать? Вставить или обновить? Если он сразу выходит из строя, это на самом деле не так уж плохо, если он просто зависает и вызывает проблемы для сервера БД, это большая проблема.
Это должно быть довольно распространенной проблемой масштабирования, все должны добавлять столбцы. Что обычно делается с производственной БД? Раб -> Мастер миграции?
Обновление - я забыл упомянуть, что я использую механизм хранения innodb