The schema was locked, but the business logic needed more. A new column had to land in production without breaking a single query. You know the risk. One misstep and an entire service can slow to a crawl or return broken data.
Adding a new column is simple in theory, lethal in practice. Success demands understanding how your database stores rows, how indexes adjust, and how constraints interact with writes. In high-traffic systems, a blocking ALTER TABLE can halt the app. This is why online schema migrations exist. Tools like pt-online-schema-change or native database features let you add columns without downtime by creating shadow tables and swapping them in place.
When creating a new column, define the minimal exact type required. Avoid NULL unless it is truly needed; it changes index behavior and storage usage. Set default values carefully to prevent rewriting the entire table. For very large datasets, break the change into steps: