A new column is one of the smallest and most dangerous schema changes you can make. Done right, it unlocks features, enables queries, and supports future growth. Done wrong, it locks rows, stalls requests, and costs hours of recovery. The difference is in the preparation.
First, define the column with precision. Choose the data type that matches real usage, not just the current spec. Avoid generic types that waste space or force implicit casts. If the column will be indexed, understand how that index will affect write and read performance.
Second, manage the migration path. In production, adding a new column can trigger a full table rewrite on some databases. Plan for zero-downtime deployment. In PostgreSQL, adding a nullable column without a default is typically fast. In MySQL, use ALGORITHM=INSTANT if your version supports it. If you must backfill, do it in chunks to prevent load spikes.