Adding a new column seems simple. One migration, one execution, and it's done. But when the table holds millions of rows, a blocking alteration can freeze writes and spike load. Without care, a single ALTER TABLE can turn a release into an outage.
The right way to add a new column depends on the database engine, storage engine, and latency tolerance. In PostgreSQL, ALTER TABLE ... ADD COLUMN is fast if it uses a default of NULL and no constraints. In MySQL, especially with InnoDB, schema changes can be online or blocking depending on settings and versions. Some teams use tools like pt-online-schema-change to avoid locking.
Performance impact comes not only from the DDL itself but also from backfills. Populating a new column with data can saturate I/O and flush caches. Splitting the backfill into small batches, throttling writes, and indexing after data is in place can keep the system stable. Order matters: add the column, backfill, validate, then add indexes and constraints.