When you add a new column, first decide the exact data type and constraints. A poorly chosen type leads to slow queries and wasted storage. Avoid vague types like TEXT where VARCHAR fits. Choose defaults carefully—wrong defaults can lock future changes.
Next, measure the impact on existing queries. Even a column you think won’t be read by current code can cause query plans to shift. Test in a staging environment with production-scale data. Look for full table scans, lock contention, and index growth.
For large tables, add a new column without blocking writes. Tools like online schema change frameworks split the migration into steps: add the column without default, backfill data in small batches, and then set the constraint and default clause. This avoids long locks and keeps the application responsive.