Adding a new column sounds simple. It can break production if you do it wrong. Databases hold live traffic, and schema changes are dangerous. Locks block writes. Indexes rebuild. Queries stall. Users wait.
The right way to add a new column starts with planning for zero downtime. Use migrations that run in phases. First, add the column as nullable. Deploy. Backfill in small batches to avoid table-wide locks. Add indexes after data is populated. Switch application reads to the new column only when populated and tested. Then enforce constraints.
For PostgreSQL, ALTER TABLE ... ADD COLUMN is usually fast for nullable, no-default columns. Beware defaults on large tables; they rewrite data. For MySQL, online DDL with ALGORITHM=INPLACE or LOCK=NONE is key. Use tools like pt-online-schema-change or gh-ost for massive datasets.