A new column changes everything. One schema update, and the shape of your data shifts. If the migration is slow, you block writes. If the lock holds too long, users see errors. Precision matters.
Adding a new column in production is not just an ALTER TABLE statement. In most relational databases, the impact depends on table size, engine, and storage. Some operations rewrite the entire table. Others use metadata-only changes that complete instantly. Choosing the wrong approach can throttle throughput or cascade into downtime.
For PostgreSQL, adding a nullable new column with a default is fast if you avoid an inline constant. Using ALTER TABLE ... ADD COLUMN my_col type; without a default avoids a table rewrite. Populate values in batches to prevent load spikes. Then add the default constraint after backfill.
For MySQL, behavior differs between InnoDB and older engines. Many modern versions support instant DDL for adding a new column at the end of a table. But adding it in the middle, or with certain attributes, triggers a table copy. Monitor innodb_online_alter_log_max_size to avoid running out of buffer during online changes.