Adding a new column is not just writing ALTER TABLE. It is about stability, migration strategy, and aligning the database with application logic. The operation must be atomic when possible. Or it must be staged if the dataset is large. Bulk writes can lock tables. Long locks can stall services.
Start with definition. Know the data type. Decide nullability. If the new column needs a default value, set it mindfully—consider write amplification. Use proper indexing only after measuring query patterns. An unused index is wasted cost. A bad index can slow inserts and updates.
For production systems, run migrations in zero-downtime mode. This may mean creating the column without constraints first. Populate it in batches. Add constraints later. Coordination between application deployment and schema change stops errors before they start. If the app writes to the new column before it exists, or reads before values are populated, you will see failures in real time.