Adding a new column should be simple. In SQL, it begins with ALTER TABLE. But the reality is more complex. Performance can drop. Lock times can stall writes. Data consistency can suffer if you skip a plan. The difference between smooth deployment and outage comes from knowing when and how to add a new column without breaking production.
A new column changes the shape of your schema. In relational databases like PostgreSQL, MySQL, or MariaDB, adding it requires a full or partial table rewrite unless the database supports metadata-only changes. Large tables amplify cost. When millions of rows are involved, schema alterations can lock the table, consuming CPU and I/O for minutes or hours.
Best practice starts with visibility. Check row count, index size, and replication lag. Run the change in staging with production-scale data. For MySQL, use pt-online-schema-change or gh-ost to avoid blocking. For PostgreSQL, use ADD COLUMN ... DEFAULT NULL first, then backfill in small batches, and finally apply constraints.