Adding a new column sounds simple. In practice, it can be fraught with hidden cost. A careless ALTER TABLE can lock writes. A mismatched data type can cripple queries. Version drift between environments can turn a single change into a long night. Speed matters, but correctness matters more.
Start with a plan. Decide on column name, type, nullability, and default value. Think ahead: will this field live in queries with high read volume? Will indexes be needed? If you add an indexed column without considering write volume, you risk slowing down every insert.
Migrations offer control. Use transactional DDL where the database supports it, so your schema change is atomic. In systems without it, test the migration on a staging copy of production data. Look for slow queries before and after. Run EXPLAIN to confirm plans haven’t degraded.