Adding a new column is one of the most common schema changes in production systems. It looks simple. It isn’t. The wrong approach can lock tables, block writes, and push latency through the roof. The right approach fits into your deployment pipeline without breaking anything.
Start by defining the new column with the smallest possible footprint. Use NULL defaults or lightweight constraints to avoid expensive rewrites. In high-traffic environments, avoid adding NOT NULL with a default in one step; instead, create the column as nullable, backfill in batches, then enforce constraints when safe.
Schema migrations need to be zero-downtime. Use tools like gh-ost or pt-online-schema-change for MySQL, and ALTER TABLE ... ADD COLUMN with careful transaction control in PostgreSQL. Always measure impact with real query plans before running in production.