Adding a new column to a database sounds simple. It rarely is. The choice between ALTER TABLE and a rolling schema migration can determine whether your next deploy passes in minutes or stalls under lock contention.
A direct ALTER TABLE ADD COLUMN works for small datasets. On large tables, it can block writes, escalate locks, and spike CPU on replicas. Modern relational databases like PostgreSQL, MySQL, and SQL Server each have quirks: PostgreSQL can add a new nullable column instantly, but adding a default value rewrites the entire table. MySQL might block writes depending on the storage engine and version.
Schema design before adding a new column matters. Define the column type, nullability, default value, and indexing strategy. Avoid adding indexes at the same time as the column — apply schema changes in small steps to minimize migration risk.