A new column changes the structure of a table. It can be simple—an ALTER TABLE statement with a name and type—or it can be the start of a major migration. The impact depends on scale, indexing, and how the application reads and writes the data.
In most relational databases, adding a new column with a default value forces a full table rewrite. On large datasets, that means locks, downtime, or degraded performance. PostgreSQL handles some cases more efficiently—adding a column with a NULL default can be nearly instant, but non-null defaults still require rewriting existing rows. MySQL’s behavior depends on storage engine settings and table definitions.
When you add a new column, be deliberate about type choice. Use the smallest data type that works. Think about nullability—whether it should allow null values now, and whether you’ll need to enforce constraints later. Add indexes only if the column will be queried directly, and understand that index creation itself can be expensive.