The query finished running, but the data felt wrong. You scan the schema. There it is — a missing field. You need a new column.
Adding a new column is routine, but timing, scale, and precision matter. Schema changes touch live systems. If they are careless, they lock tables, block writes, or force downtime. Done well, they are invisible to users.
Start with intent. Decide if the new column is required for app logic, analytics, or API responses. Define its type exactly. VARCHAR vs. TEXT, INT vs. BIGINT: each choice has cost and behavior.
Plan for defaults. When you add a new column in a large table, setting a default value can rewrite the entire dataset. For billions of rows, that is dangerous. Use a nullable column first, backfill in batches, then enforce NOT NULL and a default after the migration.