Adding a new column should be fast, predictable, and reversible. But in most systems, schema changes block writes, trigger full table locks, or slow queries to a crawl. On a large production database, that can mean dropped connections, delayed jobs, and frustrated users.
A new column alters the shape of your data. This can break ETL pipelines, invalidate cached queries, and require updates to application code. Before you run the migration, you need a clear plan: define the column name, type, default values, indexes, and nullability. Keep the definition minimal to avoid unnecessary rewrite of existing rows.
On PostgreSQL, ALTER TABLE ... ADD COLUMN executes quickly if you skip adding a default. Defaults on large tables cause a rewrite that can take hours. Instead, add the column as nullable, backfill asynchronously, then set the default. On MySQL, online DDL can help, but watch for constraints that force a table copy. For distributed databases, check the replication lag and coordinate deployment steps to avoid mismatched schemas between nodes.