Adding a new column in a production system is not just an ALTER TABLE call. In high-traffic environments, it can lock tables, block writes, and cause timeouts. Schema changes must be planned, tested, and rolled out with zero downtime in mind.
First, assess whether the new column is required in the core table or better served through a separate structure. Adding large text or JSON fields can inflate row size and reduce cache efficiency. For indexing, plan ahead. A new index on the column can improve query speed but will slow inserts until it's built.
Second, handle the deployment in stages. Use a migration that adds the column without defaults or constraints where possible. This speeds the operation and avoids table rewrites. Populate values asynchronously through background jobs. Only after data is backfilled should you add constraints and indexes in separate migrations.