Adding a new column is one of the most common schema changes in relational databases. It is also one of the most dangerous if done without planning. Even a single careless ALTER TABLE can lock rows, block queries, or slow your application to a crawl.
When adding a column, first ask: is it nullable? Defaulted? Indexed? Each choice affects storage, performance, and deploy safety. If the column is NOT NULL without a default, the database must rewrite every row. On large datasets, this leads to downtime or replication lag. For safe rollout, use a nullable column with no default, backfill in small batches, then enforce constraints.
In MySQL, ALTER TABLE ... ADD COLUMN is a blocking operation unless you use ALGORITHM=INPLACE or ALGORITHM=INSTANT (available in newer versions). In PostgreSQL, adding a nullable column is fast; adding with a constant default rewrites the table before version 11. On modern PostgreSQL, setting a default without rewrite is possible, but indexing will still require time and locks.