Adding a new column is one of the most common schema changes in any relational database. But doing it wrong can lock tables, stall writes, and bring down services under load. Speed and safety depend on strategy.
In PostgreSQL, a new column with a default value can rewrite the entire table. On production-scale datasets, this means downtime. The safer pattern is to add the column as nullable, backfill in batches, then apply constraints. In MySQL, an ALTER TABLE often blocks writes, but online schema change tools like gh-ost or pt-online-schema-change can make it zero downtime.
When adding a new column in a distributed system, you must align schema migrations with application deployments. The code must tolerate both the presence and absence of the column until rollout completes. This usually means deploying read/write compatibility before enforcing the column’s presence.