Adding a new column is one of the most common schema changes in a database. It sounds simple, but it can trigger downtime, lock tables, and break production if done without care. The right approach depends on the database engine, the size of the table, and whether you can afford blocking writes.
In PostgreSQL, ALTER TABLE ... ADD COLUMN is fast when adding nullable columns without a default. No data rewrite occurs; the column exists virtually until updated. But adding a column with a non-null default rewrites the whole table, which can be slow on large datasets. Use a two-step approach: add the column as nullable, then backfill in small batches, and finally set the NOT NULL constraint.
In MySQL, ALTER TABLE can lock the table. With InnoDB and modern versions, ALGORITHM=INPLACE can add certain columns without a copy, but defaults and indexes can still cause full-table rebuilds. For high-traffic systems, run schema changes with tools like gh-ost or pt-online-schema-change to avoid blocking operations.