Adding a new column sounds simple. In small tables, it is. In production at scale, it can be dangerous. Schema changes block queries, lock rows, and stall writes. The wrong approach turns a minor update into an outage.
A new column alters the storage layout of a table. In most relational databases, this triggers a rewrite of either metadata or the entire table. The cost depends on the database engine, table size, and whether the column has a default value. Always measure the impact before deployment.
In PostgreSQL, adding a column with no default is instant. Adding one with a non-null default rewrites the table. That means a full table scan and potential downtime. MySQL works differently: in versions prior to 8.0, most ALTER TABLE operations perform a full copy. With newer versions and ALGORITHM=INSTANT, adding a nullable column is fast, but defaults still may trigger rebuilds.