A new column in a production database is simple in theory and costly in practice. Schema changes can block queries, lock writes, and trigger long migrations. The safest approach depends on the database engine, the size of the dataset, and the read/write patterns.
In PostgreSQL, adding a nullable column without a default is fast. The ALTER TABLE command updates metadata only. But if you add a default, the operation rewrites the entire table. On large datasets, that can mean minutes or hours of blocking. The common pattern is to create the column without a default, backfill in small batches, and then set the default for future inserts.
In MySQL, the story is similar but with its own caveats. Versions before 8.0 often require a full table rebuild for certain changes. With 8.0 and Instant ADD COLUMN, adding a nullable column without a default is nearly instant. Still, watch for replication lag and slow queries during the change.