Adding a new column is one of the most common changes in database work. It looks simple. It can still take systems down if done without planning. A schema change touches live data. The way you add it depends on the database engine, table size, traffic, and your rollback plan.
In PostgreSQL, adding a nullable column with no default is almost instant. Adding one with a default rewrites the whole table. That rewrite locks writes for the entire operation. On a billion-row table, that can freeze production for hours. MySQL behaves differently. ALTER TABLE creates a copy when not using certain storage engines. This can cause long blocking or spike disk usage.
A safe pattern for a new column is to add it without defaults, backfill in small batches, then set the default and constraints after completion. Use feature flags to gate application reads and writes until the column is ready. Monitor replication lag if you are in a read-replica setup. Test on staging with realistic data.