Як більшість "популярних" (MySQL, Postgres ...) системних баз обробляють зміни таблиць на базах даних в реальному виробництві (наприклад, додавання, видалення або зміна типу колон)?
Я знаю, що правильний спосіб - створити резервну копію всього простою в розкладі, а потім зробити зміни.
Але ... чи підтримує будь-яка поточна система бази даних робити ці речі "он-лайн", не зупиняючи нічого? (можливо, просто затримуючи запити, які посилаються на стовпець, що щойно змінюється / видаляється)
А що трапляється, коли я просто роблю ALTER TABLE...
базу даних, що працює в реальному часі? Чи все припиняється, коли це відбувається? Чи можуть дані пошкодитися? тощо.
Знову ж таки, я здебільшого маю на увазі Postgres або MySQL, оскільки це те, з чим я стикаюся.
(І так, будь-коли, коли я мав це робити, перш ніж зробити це "правильним способом", створивши резервну копію речей, склавши графік роботи і т.д. ..., але я просто хочу знати, чи можна робити такі речі та речі "швидко та швидко" брудно "або якщо є якась система БД, яка фактично підтримує зміни схеми" швидкі, живі та брудні ")
Хтось щойно запропонував змінити схему Інтернету для MySQL із сценарію Facebook (з підручником тут і джерелом тут ) ... здається, хороший спосіб автоматизувати набір "хакі" способів це зробити ... хтось коли-небудь використовував це в щось схоже на виробництво?
pg_reorg
може допомогти у складних сценаріях.