Adding a new column in production is not just an ALTER TABLE statement. Done wrong, it causes downtime or locks writes. Done right, it is a safe, reversible change that grows with your system.
First, define the column name and data type with precision. Choose nullable if you must backfill gradually. For high-traffic databases, use non-blocking migrations. In MySQL, that means ALTER TABLE ... ADD COLUMN with ALGORITHM=INPLACE and LOCK=NONE when possible. In Postgres, adding a nullable column with no default is instant; adding one with a default rewrites the table.
Plan the rollout. Add the column with a safe migration. Deploy code that writes to both old and new structures. Backfill the column in small batches, monitoring for load spikes. Once backfill is complete and verified, switch reads to the new column. Remove stale fields only after traffic has fully shifted.