A new column sounds simple, but the wrong approach can lock a table, stall writes, or corrupt data. The fastest path isn’t always the safest. It’s critical to plan the migration so reads and writes continue without interruption.
When adding a new column in a relational database, choose the smallest data type that works for your use case. Default values can be dangerous; on large tables they trigger a full table rewrite. Instead, add the column as nullable. Backfill in small batches. Once the data is in place, set constraints or defaults in a separate migration.
In MySQL and Postgres, adding a nullable column without default is usually instant. But adding a column with default will scan and rewrite. In Postgres 11+, adding a column with a constant default is optimized — but older versions need the safer nullable route.