A new column changes the shape of your data. It can fix a broken query path, capture new user behavior, or enable features you could only plan for before now. In most systems, adding a column should be fast. But in production, with live traffic and terabytes of rows, it can break everything if handled carelessly.
The key is knowing how your database engine executes an ALTER TABLE operation. In PostgreSQL, a new column with a default value can trigger a full table rewrite. In MySQL, adding a column to the end of a table can be instant, but inserting it in the middle forces a rebuild. For distributed data stores, the impact compounds; each shard must apply the schema change.
Zero-downtime migrations require a controlled process. First, add the new column as nullable without defaults to avoid rewrites. Second, backfill data in small batches. Third, make the column non-nullable or set defaults only after the backfill completes. Tools like pt-online-schema-change, gh-ost, or custom migration scripts keep the table online during these steps.