Schema changes can be swift or they can grind production to a halt. In relational databases, adding a new column sounds simple. Run ALTER TABLE and move on. But in systems with millions of rows or tight SLAs, that single command can lock tables, consume memory, and cause downtime.
A new column is more than a place to store extra data. It is a structural change. Depending on the engine, indexes may rebuild, triggers recompile, and constraints revalidate. In MySQL, large tables can block writes during this process. In PostgreSQL, adding a nullable column with a default can trigger a full table rewrite. In distributed databases like CockroachDB or Yugabyte, schema changes roll out across nodes and require careful coordination to avoid conflicting writes.
Experienced teams plan new column additions with migration strategies. Online schema change tools like pt-online-schema-change for MySQL or ALTER TABLE ... ADD COLUMN with default-null in Postgres can reduce locking. Feature flags work with staged migrations: first add the column without defaults, then backfill data asynchronously, and finally enforce constraints. The right order matters.