Adding a new column should be fast, predictable, and safe. In most systems, it can be. But performance, locking, and deployment risks turn a small schema update into a production concern. The wrong migration at the wrong time can freeze writes or cause subtle corruption. The right approach makes the change invisible to your users.
A new column starts with a clear definition. Decide on the name, type, and nullability. Avoid default values that force a table rewrite on large datasets. For nullable columns, most relational databases can add them instantly with no table copy. For non-null columns or heavy defaults, use staged migrations: add the column nullable, backfill data in controlled batches, then add constraints.
In SQL:
ALTER TABLE orders
ADD COLUMN processed_at TIMESTAMP NULL;
Run during low load. Monitor locks. In Postgres, ALTER TABLE ... ADD COLUMN is O(1) for nullable additions. MySQL and others can also perform this operation instantly under certain flags. Always check your database version and storage engine, as behavior changes between releases.