Adding a new column sounds simple. It is not. Done wrong, it locks tables, drops performance, and stalls deploys. In high-traffic systems, a careless schema change can take production down.
The first step is to define the column in a way your database can handle online. In PostgreSQL, adding a nullable column with no default is safe. Setting a default on creation rewrites the entire table. Better: add the column empty, backfill in small batches, then apply constraints.
In MySQL, the path depends on the engine and version. For InnoDB, versions before 8.0 may require tools like pt-online-schema-change to avoid blocking writes. Newer versions handle many ALTER TABLE operations instantly if they meet internal fast-change rules. Know them before you run them.
For distributed databases, adding a new column means coordinating schema changes across nodes. Strongly consistent systems enforce changes sequentially. Eventual-consistency systems often allow forward-compatible changes, but you must ensure application code tolerates missing or null values during rollout.