Adding a new column sounds simple, but in production systems it can introduce latency, break integrations, or corrupt data. The risk multiplies when the database serves millions of requests per minute. The process must be precise.
First, define the new column in a migration script. Include type, constraints, and default values. Avoid defaults that force a full table rewrite unless absolutely required. For large tables, consider adding the column as nullable, then backfilling data in batches. This reduces lock contention and keeps queries responsive.
Second, monitor query performance after deployment. Even if the column is unused by application code, indexes, triggers, and ORM models may interact with it. Run explain plans on critical queries to detect regressions.