Adding a new column is one of the most common schema changes, but it can still break production if done carelessly. An ALTER TABLE on a large dataset can lock rows for minutes or even hours. Foreign keys, indexes, and triggers can magnify the impact. The right approach depends on your database engine, table size, and traffic pattern.
In PostgreSQL, you can add a new column instantly if it has a NULL default. Adding a NOT NULL column with a default value will rewrite the entire table, causing heavy IO and potential blocking. The safe method: create the column as nullable, backfill in small batches, then add the constraint. In MySQL, especially before 8.0, adding a column may require a table copy. Use online DDL when available, and combine it with replicas to reduce risk.
Plan schema changes like deployments. Start with a migration script that can run online. Measure the effect in a staging environment with production-scale data. Always back up before altering schema. Test application queries against the updated table to avoid runtime errors.