Adding a new column sounds simple, but in production systems, the wrong approach can stall queries, lock tables, or break downstream services. The key is to choose a method that works at scale without downtime. This often means understanding how your database engine handles schema changes and planning for versioned deployments.
In PostgreSQL, adding a new column with a default value will rewrite the whole table if done in one step. To avoid this, first add the column without the default, then backfill the data in batches, then set the default after the backfill is complete. In MySQL, using ALTER TABLE can be instant with ALGORITHM=INPLACE or ALGORITHM=INSTANT if your engine supports it, but certain column types or position changes still force a rebuild.
The naming and type of a new column should be stable before rollout. Changing them later often requires a full table rewrite or complex migrations. Always verify the nullability, constraints, and indexing strategy before deployment. An ill-considered index on a new column can cause write performance drops.