Adding a new column sounds simple. It rarely is. You have to choose the right data type. You have to decide on nullability, set default values, and ensure backward compatibility. If your table holds millions or billions of rows, running a blocking ALTER TABLE can halt production. You need to plan for indexes, replication lag, and the cost of writing to more storage.
Schema changes in production demand discipline. Deploy the new column in a safe, incremental way. If you need to backfill, do it in small batches to avoid locking and IO spikes. Deploy application code that can handle both the old and new schema at the same time. Roll out changes in phases, verifying at each step that constraints, triggers, and relationships still hold.
A new column affects performance. Indexes on it can speed up queries, but they also slow down inserts and updates. Storing JSON or large text fields can bloat rows and hurt cache hit rates. Monitor slow query logs. Watch replication lag. Test under load before a full rollout.