Adding a new column is one of the most common schema changes in relational databases. Done wrong, it blocks writes, locks reads, or burns CPU on massive reindexing. Done right, it’s seamless, secure, and doesn’t break production.
First, understand the database engine’s behavior. In MySQL and MariaDB, ALTER TABLE can lock the table unless you use ALGORITHM=INPLACE or ALGORITHM=INSTANT (available on certain versions). In PostgreSQL, adding a nullable column with a default value will trigger a full table rewrite, unless you keep the default null and update rows in smaller batches.
Second, watch for indexing traps. Adding a new indexed column on a large table creates an index build step that can block DML operations. In most workloads, you get more control creating the column first, then building the index with CONCURRENTLY in PostgreSQL or using online DDL in MySQL.