The new column changes the shape of your data. It can break queries, invalidate caches, and slow writes if not planned. The first step is understanding why it exists. Is it a permanent field? Will it store derived data or critical user state? This drives the definition: NULL or NOT NULL, default values, data type, and indexing strategy.
When adding a new column to large tables, performance matters. Most relational databases will lock the table during the alteration unless they support fast, in-place DDL. With MySQL, consider ALGORITHM=INPLACE. In PostgreSQL, adding a NULL column without defaults is nearly instant, but defaults can force a rewrite. Test the migration in a staging environment with production-scale data to measure the actual impact.
For backward compatibility, deploy schema changes before deploying the code that writes or reads the column. Avoid assuming the presence of data. Populate it through background jobs or transactional scripts. Only then should application logic switch to depend on it. Once the column is live in production, monitor query plans to catch regressions caused by new indexes or type mismatches.