Adding a new column is one of the most common schema changes, but it can also be one of the most expensive if handled poorly. In modern systems, a single ALTER TABLE on a large dataset can lock writes, cause downtime, or trigger a costly full-table rewrite. The right approach depends on database type, storage engine, traffic patterns, and replication strategy.
In PostgreSQL, adding a nullable column without a default is fast—metadata only. But adding a column with a default value rewrites the table. Use nulls and backfill incrementally when speed matters. MySQL behaves differently across versions and engines. InnoDB now supports instant ADD COLUMN in many cases, but older versions require a complete table rebuild. Always confirm behavior on a staging system before production.
Column order can matter for certain workloads. In wide tables, a poorly placed new column can impact I/O performance and storage size. Plan placement if you expect heavy sequential scans or compression overhead.
For distributed databases like CockroachDB, adding a new column is usually online. But the data backfill phase can still strain the cluster. Apply rate limits to avoid saturation.