Adding a new column in a production database is simple in syntax and complex in consequence. It changes the shape of your schema. It alters how indexes work. It impacts storage, caching, and every application that consumes the table.
When you introduce a new column in SQL, the operation can be instantaneous or blocking, depending on the database engine, table size, and constraints. In PostgreSQL, adding a nullable column without a default is fast. Adding one with a default value rewrites the table and can lock writes. MySQL and MariaDB behave differently based on storage engines and ALGORITHM settings.
The migration strategy matters. For large datasets, online schema changes protect uptime. Create the new column without defaults, backfill in batches, and apply constraints after the data is in place. For systems under high load, coordinate with deploy windows and ensure replicas stay in sync.