Adding a new column sounds simple. In production, it is not. You need to think about schema migrations, data backfills, defaults, nullable fields, and how queries will break if you get it wrong. A careless ALTER TABLE can lock rows, stall services, or trigger cascading failures.
Plan the new column. Name it so its purpose is self-evident. Set the data type for accuracy and performance. Decide whether it can be null, and if not, what the default will be. For large datasets, create the column without a default first, then backfill in small batches to avoid downtime.
Index only if required. An unnecessary index can slow writes. But if the new column will filter or join frequently, indexing early prevents later pain. Use migrations that run online or in phases to avoid blocking requests.