Adding a new column should be simple. In practice, it can grind production to a halt if you do it wrong. Schema migrations that block writes, long-running ALTER TABLE commands, and inconsistent data across replicas are common risks. The stakes are even higher on large datasets, where adding a single column can lock up critical operations.
The term “new column” is not just about database structure. It’s about control over change. Every database—PostgreSQL, MySQL, or any distributed store—handles new columns differently. Knowing those differences determines whether your migration runs in milliseconds or hours.
In PostgreSQL, adding a nullable column with a default value before version 11 rewrote the entire table. In MySQL with InnoDB, an ALTER TABLE may rebuild the table unless you use instant DDL features in recent versions. For distributed databases like CockroachDB, schema changes are asynchronous but require careful compatibility checks to avoid serving inconsistent queries.