A new column in a database table can be simple in theory and expensive in practice. It changes the structure of the table. It can block writes. It can lock rows. If mishandled, it can take down services. The safest way to add a column depends on your database engine, your data volume, and your uptime requirements.
In PostgreSQL, ALTER TABLE ADD COLUMN is fast when the column has no default and is nullable. The command updates only metadata. But adding a default with a non-null constraint rewrites the whole table, which can take hours on large datasets. To avoid downtime, add the column as nullable, backfill in chunks, then apply constraints.
In MySQL, adding a new column can lock the table unless you use ALGORITHM=INPLACE or online DDL, available in modern versions. Even then, watch for replication delays. With InnoDB, the cost of adding a column grows with table size unless you avoid operations that copy data.
For analytics warehouses like BigQuery or Snowflake, adding a new column is instant, because schemas are decoupled from physical storage. But for OLTP systems under constant load, you need a migration plan. That means: