Adding a new column sounds harmless. It isn’t. In production systems, a schema change is an operation that can block writes, lock tables, slow queries, and break deploy pipelines if handled carelessly. The cost of getting it wrong scales with size, traffic, and uptime requirements.
A new column means altering the database table. In PostgreSQL, ALTER TABLE ... ADD COLUMN is fast for nullable or default-null columns because it updates metadata only. But adding a column with a non-null default can rewrite the entire table. In MySQL, operations vary by storage engine and version; some require full table rebuilds. On large datasets, that’s downtime, lag, or degraded performance.
The safest path is planning the change without blocking the workload. Add the column as nullable, backfill in small batches, then apply constraints. Use feature flags to coordinate schema and application changes. Test on a staging database with production-like volume before running in production. Monitor replication lag during backfills if you use replicas.