Adding a new column is simple in theory but can break production if done carelessly. The key is to choose the right method for the database engine, ensure zero-downtime deployment, and avoid blocking writes. In most relational databases, the ALTER TABLE command with ADD COLUMN works, but the operational impact depends on factors like table size, locks, and replication lag.
In PostgreSQL, adding a nullable column without a default is instant. Adding one with a default rewrites the table and can lock writes unless you use a two-step migration: create the column as nullable, then apply the default in a backfill job. In MySQL, behavior varies by storage engine and version — newer releases with ALGORITHM=INSTANT can add columns without a full table copy.
Always test schema changes in a staging environment with realistic traffic and data volumes. Monitor performance during rollout with query logs and replication health metrics. For large datasets, plan background jobs to populate the new column gradually. Avoid triggers or procedural code during this phase unless absolutely necessary.