У нас есть большая таблица из ~ 20 миллионов записей в MySql InnoDB (v5.0.85). Таблица записывает состояние для действий пользователя и используется несколькими серверами приложений. Иногда появляется новое требование, которое означает, что нам нужно добавить новый столбец в эту таблицу для хранения дополнительной информации. Выполнение команды alter занимает около 20 минут, в течение которых приложение не может выполнять свои обязанности, так как таблица заблокирована - это больше не приемлемо для нашей бизнес-модели, поскольку приложение должно оставаться максимально доступным с очень коротким перерывом в работе. нажмите новый код сервера.
Я пытаюсь найти способы изменить архитектуру, чтобы мы могли добавлять новые столбцы для поддержки новых вариантов использования и в то же время поддерживать приложение в оперативном режиме. Мы планируем внедрить процесс архивации для удаления старых записей из таблицы, но ожидается, что он все еще будет очень большим.
Может ли кто-нибудь указать мне какие-либо книги, онлайн-ресурсы или просто ваш собственный опыт о том, что помогло и не сработало для управления балансом между доступностью, размером таблицы и меняющимися требованиями?
Спасибо!