Adding a new column sounds simple. It is not. Schema changes can block writes, lock tables, and break production if done without care. In high-throughput systems, even a small migration can turn into a bottleneck.
A new column alters storage layouts. Depending on your database engine, this may trigger a full table rewrite. For large datasets, that’s costly. Some systems support instant column additions. Others require background operations that still burn I/O and CPU. Always check the documentation for exact behaviors, because defaults change between versions.
Backfilling that new column is another trap. If you run an UPDATE across millions of rows without batching, you risk long locks and contention. Use migrations that are chunked, idempotent, and restartable. Deploy the schema change first. Deploy the code to use it next. Only then run the backfill in small, controlled increments.