Adding a new column should be simple, but in production it can be costly. Schema changes lock tables. Long-running migrations block deploys. Overtax a database and you can drag the whole system down. The way you add a column matters.
The cleanest path is to use a non-blocking migration. In PostgreSQL, adding a nullable column without a default is instant. Fill it in later with batch updates. If you need a default value, set it after the column exists, using small chunks to avoid locking the entire table. MySQL works similarly: watch out for data type changes that force a table rewrite. Always test the migration on production-sized data before running it live.
Track how the new column impacts queries. Any index you add will affect write performance. Avoid premature indexing; measure first, then optimize. If the new column needs constraints, apply them after the data is populated, again in safe, incremental steps.