Adding a new column is one of the most common schema changes, yet it can cause outages, slow queries, and trigger costly reindexing if done poorly. Whether in PostgreSQL, MySQL, or a distributed SQL system, the impact depends on table size, constraints, and the way the change is rolled out.
A new column can be added with ALTER TABLE in most relational databases. For small tables, this is instant. For large tables, the operation can lock writes and block reads. Online schema migration tools like pt-online-schema-change or gh-ost avoid downtime by copying data to a shadow table and swapping in the change. Many cloud-managed databases now support instant column addition by storing metadata-only changes until data is written.
Deciding on column type, nullability, and default values is critical. A default can be expensive to backfill if the database writes it to every existing row. Nullable columns avoid this cost but require the application layer to handle missing values. For high-throughput systems, adding a column with computed or generated values may need staged deployment: first add the column, then populate in batches, then enforce constraints.