Cuando se realiza una instrucción ALTER TABLE en MySQL, toda la tabla está bloqueada para lectura (permitiendo lecturas simultáneas, pero prohibiendo escrituras simultáneas) durante la duración de la declaración. Si se trata de una tabla grande, las declaraciones INSERT o UPDATE podrían bloquearse durante muuuucho tiempo. ¿Hay alguna manera de hacer un "cambio en caliente", como agregar una columna de tal manera que la tabla aún sea actualizable durante todo el proceso?
Principalmente, estoy interesado en una solución para MySQL, pero estaría interesado en otros RDBMS si MySQL no puede hacerlo.
Para aclarar, mi propósito es simplemente evitar el tiempo de inactividad cuando una nueva función que requiere una columna de tabla adicional se envía a producción. Cualquier esquema de base será cambiar con el tiempo, que es sólo un hecho de la vida. No veo por qué deberíamos aceptar que estos cambios deben resultar inevitablemente en tiempo de inactividad; eso es solo débil.