Adding a new column to a production database is simple in theory, but dangerous in practice. It changes the data shape. It changes how queries run. It can block with locks. Done wrong, it can halt a service under load. Done right, it improves performance or unlocks features instantly.
First, define the purpose of the new column. Is it nullable? Does it need a default value? Will it store computed data or raw inputs? Every choice affects both storage and retrieval. Use an explicit type — avoid implicit conversions that hide errors until they cost hours.
Second, plan the deployment. Run migrations in a way that avoids long locks. With large tables, adding a column can take minutes or even hours depending on the database engine. In PostgreSQL, adding a nullable column without a default is fast. Adding with a default rewrites the table. MySQL has similar rules. Know them before you write.