Adding a new column is one of the most common schema changes in production systems. It seems simple, but the cost of a bad approach can be high. Locking tables under heavy load. Breaking queries in downstream services. Creating schema drift between environments.
A new column should be introduced with intention. Start by checking the existing schema. Identify where default values or nullability will matter to your application logic. Decide on the correct data type now—changing it later under traffic is harder.
In most relational databases, adding a nullable column without a default is fast. Adding a non-null column with a default often rewrites the entire table. For large datasets, that’s a risk. Sometimes the right move is to add the column as nullable, backfill data in batches, and then alter it to non-null with a constraint.