Depende.
Primeiro, se você tem um banco de dados muito grande, abrangendo várias máquinas, tudo (não apenas a atualização do banco de dados) será complicado. (não importa quanto você planejou com antecedência).
Segundo, a atualização de um banco de dados NÃO é apenas uma coisa do banco de dados - também depende do sistema maior do qual o banco de dados faz parte. Isso também inclui a implantação do banco de dados (muitos servidores de banco de dados, vários data centers, configurações mestre-escravo etc.)
A dor pode ser aliviada pela arquitetura dos componentes do sistema, de forma que todos eles tenham algum tipo de 'conhecimento' do evento de alteração do esquema do DB. Isso significa que todo o sistema deve tolerar alterações de esquema e pode responder a ele de maneira "sã".
Você pode conferir um utilitário desenvolvido pelo Facebook para lidar com as atualizações de esquema do MySQL.
Além disso, existem práticas recomendadas padrão, como transformar o mestre em somente leitura, fazer alterações nos escravos ou na cópia de desenvolvimento etc.
De qualquer forma, é essencial ter um backup completo e um amplo conjunto de testes . Somente então, você poderá fazer alterações com confiança e segurança.