A new column changes the contract between your database and your application. It can alter read paths, break old APIs, and change indexes in ways that slow performance. In SQL, the command is easy:
ALTER TABLE orders ADD COLUMN delivery_status VARCHAR(20);
But the real work happens after this one line. You must decide on default values for old records, backfill without locking tables, and ensure migrations are reversible. Tools differ: PostgreSQL supports fast column adds without table rewrites for many data types; MySQL may require a full table copy unless you use ALGORITHM=INPLACE. For massive datasets, this matters.
Versioning is critical. Deploy the new column to the database first, but keep application code tolerant to its absence during rollout. Feature flags can gate writes until all nodes are ready. Monitor query plans; even a nullable column can change the optimizer’s behavior.