Как наиболее «популярная» (MySQL, Postgres ...) система баз данных обрабатывает изменение таблиц в действующих производственных базах данных (например, добавление, удаление или изменение типа столбцов)?
Я знаю, что правильным способом является резервное копирование всего времени простоя по расписанию и внесение изменений.
Но ... поддерживает ли какая-либо текущая система баз данных выполнение этих операций в режиме онлайн без каких-либо остановок? (возможно, просто задерживает запросы, которые ссылаются на столбец, который только что был изменен / удален)
И что это происходит, когда я просто делаю ALTER TABLE...
на работающей базе данных? Все ли останавливается, когда это происходит? Могут ли данные быть повреждены? и т.п.
Опять же, я в основном имею в виду Postgres или MySQL, поскольку с этим я сталкиваюсь.
(И да, в любое время мне приходилось делать это, прежде чем я сделал это «правильным образом», резервное копирование, планирование понижения и т. Д. ... но я просто хочу знать, возможно ли сделать это и так быстро и быстро » «грязный» или если есть какая-либо система БД, которая на самом деле поддерживает «быстрые, живые и грязные» изменения схемы)
Кто-то только что предложил Online Schema Change для MySQL из скрипта Facebook (с учебником здесь и источником здесь ) ... кажется хорошим способом автоматизировать набор "хакерских" способов сделать это ... кто-нибудь когда-либо использовал его в чем-то похожим на производство?
pg_reorg
может помочь с более сложными сценариями.