Schema changes are the sharp edge of software. A single ALTER TABLE can unlock features or bring production to its knees. Adding a new column sounds simple. It rarely is. You have to think about type, default values, indexes, constraints, locks, replication lag, and how the application layer will handle the change.
A new column in SQL triggers a full rewrite of metadata. On large tables, this can lock writes and delay reads. In distributed systems, the change must propagate through replicas without breaking queries. In transactional systems, you have to coordinate deployments so old code ignores the column until the new code uses it.
Zero‑downtime patterns reduce risk. Create the new column without constraints. Backfill data in small batches to avoid table‑wide locks. Add indexes after the data load. Make the application read from both old and new sources until you cut over. If you must drop or rename columns later, treat that as a separate migration.