Adding a new column sounds trivial until you face the reality of production databases, live traffic, and zero downtime constraints. Schema changes are not just about DDL syntax; they are about availability, performance, and guaranteeing data integrity.
A new column impacts storage, indexing, and query execution plans. On massive tables, an ALTER TABLE ADD COLUMN can lock writes for seconds or even minutes. In distributed systems, this can ripple across shards or replicas. The wrong migration strategy can stall deployments or cause cascading timeouts.
Always assess if the column can be computed instead of stored. If storage is necessary, decide on defaults. Avoid setting a non-null default value for large tables in a single step—it can rewrite the entire table. Use nullable columns first, backfill data in batches, then enforce constraints. This staged approach reduces risk and downtime.