The table was fast, but the data was wrong. Missing values, broken reports, delayed deploys. You opened the schema and saw it: the model needed a new column.
Adding a new column is simple, but it is rarely trivial. The decision is not just about altering a table. It changes queries, indexes, migrations, API output, cache keys, and downstream analytics. A single ALTER TABLE in production may lock writes, spike latency, or trigger replication lag.
Plan the change. Choose a column name that matches your naming conventions. Pick the type that fits the data and future growth. Default values matter—many systems rewrite every row to set them, so weigh null defaults against application-level handling.
Use a safe migration process. In PostgreSQL, a small new column with no default is near-instant on large tables. In MySQL, online DDL features or tools like gh-ost can avoid blocking traffic. Test in staging with production-scale data. Measure the runtime, row changes, and locks.