Adding a new column to a database table is not just a migration step. It changes the shape of your data. It shifts how queries run, how cache behaves, how downstream systems read and write. The choice of data type, default values, nullability, and indexing strategy will define whether it improves performance or becomes a bottleneck.
In PostgreSQL, a simple ALTER TABLE my_table ADD COLUMN new_column_name TYPE; can lock the table depending on the column type and default. Without care, production writes stall. For large tables, adding a column with a default that is not NULL will rewrite the entire table on disk—dangerous under load. The safe pattern is to add the column as nullable, backfill in batches, then enforce constraints.
In MySQL, ALTER TABLE behavior depends on the engine and version. In older engines, adding a new column triggers a full table copy. Newer versions with instant DDL support can skip this, but features vary. Always verify with SHOW CREATE TABLE after the change to confirm applied constraints.