The query ran. The table waited. You need a new column, and you need it now.
A new column can be more than extra storage—it changes how your data works. It can hold derived values, track state, or store metadata that allows faster queries. Done right, it reshapes the schema without breaking existing applications. Done wrong, it slows reads, increases complexity, and drains performance.
Before adding a new column, audit your schema. Check indexes, constraints, and default values. Understand if the column will be nullable or required. For high-traffic systems, consider rollouts in stages: add the column, backfill data, then apply constraints. This avoids locking the table for long transactions.
Use ALTER TABLE for a direct change when downtime is acceptable. For zero-downtime migrations, create the column without constraints, populate it asynchronously, then enforce rules once data is consistent. Tools like migration frameworks can automate this while respecting production load.