Adding a new column is one of the most common schema changes. Done right, it is fast and safe. Done wrong, it can lock tables, trigger expensive rewrites, and bring production down. The steps matter.
First, define the change precisely. Decide on name, data type, nullability, and default value. Any ambiguity here leads to downstream bugs. For large tables, adding a column with a default non-null value may rewrite the entire table, causing hours of lock time. If possible, add the column as nullable, backfill in small batches, then apply constraints in a second step.
Second, choose how to apply the migration. For PostgreSQL, ALTER TABLE ... ADD COLUMN is usually an instant metadata-only change if no default is set. For MySQL, behavior varies by storage engine and version; check ahead to avoid surprises. For distributed databases, schema changes can propagate asynchronously, so design for backward compatibility and deploy code that works with both the old and new schema during the transition.