The database was ready, but the schema was not. A missing field. A gap you could feel in every query. You needed a new column, and you needed it now.
Adding a new column should not be risky. It should not lock tables or break production. Yet many teams still run migrations that stall writes, block reads, and cause downtime. The key is to plan for impact at scale.
A new column in SQL requires more than ALTER TABLE. In large databases, that command can rewrite the entire table. On high-traffic systems, that means hours of blocked queries. Use non-blocking migration tools like pt-online-schema-change or gh-ost to add columns without affecting live traffic. Always test in a staging environment with production-like data volume.
Choose the right default values and constraints. Nulls might be cheap at first, but they can cost more in data integrity checks later. If you add a NOT NULL column with a default, some databases will update every row immediately. That can kill performance. Add the column as nullable, backfill in batches, then enforce NOT NULL.