Queries slowed, indexes bloated, and every new deploy added friction. The fix was clear: add a new column.
A new column is more than a schema change. It can unlock new features, enable faster lookups, or store critical state without overloading existing fields. But done wrong, it can wreck performance, create inconsistent data, and trigger costly downtimes.
Before you add a new column, define its exact purpose. Know the data type, nullability, default values, and indexing strategy. Changing these later can be costly in production. Each decision affects storage size, query plans, and replication lag.
Plan for migration. In high-traffic environments, adding a column with a default value may lock the table and block writes. Avoid this by adding the column without a default, then backfilling data in safe batches. Monitor CPU, I/O, and replication delay during the process. Test the migration on a copy of production data before touching live systems.