Adding a new column should be simple. In practice, it can break queries, hurt performance, and ripple through APIs and reports. The risks scale with the size of your dataset and the number of systems depending on it. That’s why the most important decision is not only what the new column holds, but how you add it.
First, decide on the data type and constraints. Change storage and retrieval costs by choosing the smallest viable type. Enforce constraints at the database level to avoid corrupt data.
Second, make migrations predictable. Use a migration tool or run ALTER TABLE scripts during low-traffic windows. For huge tables, consider adding the column as nullable, backfilling in batches, then applying NOT NULL once the data is intact.