Adding a new column to a table should be simple. In practice, it can block writes, lock tables, and slow entire systems. The operation is small on paper, but the wrong migration can halt production. Every schema change must be planned with care — most teams learn this only after a failure.
A new column changes the contract between your code and your database. Code that writes must know about the column. Code that reads must handle nulls or defaults. Backfills can choke your I/O if you push too hard. If you store billions of rows, even adding a nullable text column can take minutes or hours, depending on the database engine and settings.
PostgreSQL handles new columns with defaults differently than MySQL. In Postgres, adding a column with a constant default rewrites the whole table, causing a long lock. Without a default, the change is nearly instant. MySQL’s behavior depends on the storage engine, version, and options. On large datasets, an online schema change tool or built-in online DDL can keep your writes flowing.