Adding a new column sounds trivial. In production, it can break systems, lock rows, or block writes. The method you choose determines whether your service hums or stalls.
First, decide whether the new column requires a default value. In many relational databases, adding a column with a non-null default rewrites the entire table. That is a full table lock. Avoid it. When possible, add the column as nullable, then backfill in controlled batches.
For PostgreSQL, ALTER TABLE ADD COLUMN is fast when the column is nullable without a default. Add indexes in a separate step. MySQL’s performance depends on the storage engine and version; recent versions support instant column addition under specific conditions. Always test on a copy of production data before touching production itself.