Adding a new column to a table is one of the most common schema changes in any production system. It sounds trivial, but the cost of getting it wrong can be outages, locked tables, and broken deploys. The right approach depends on the database engine, table size, indexing strategy, and migration tooling.
In PostgreSQL, adding a new column without a default value is instant because it only updates metadata. Adding a default value to millions of rows, however, can trigger a full table rewrite. In MySQL, ALTER TABLE operations can lock writes depending on the storage engine and column definition. This is where online schema changes with tools like pt-online-schema-change or gh-ost can save service uptime.
Before you add that new column, plan the migration. Decide if you need it nullable. If you must set a default, consider a two-step process: create the column without the default, backfill in small batches, then add the default constraint. For indexed columns, build the index after backfilling to avoid high write costs and blocking.