Adding a new column is one of the most common schema changes in production databases. Done wrong, it can lock tables, block queries, or stall writes under load. Done right, it is invisible to the application and the user. The difference comes down to understanding how your database engine handles schema changes and planning for zero-downtime deployment.
First, choose the correct column type. Changing it later is expensive, so match the type to the data you expect to store and the queries you will run against it. On large datasets, avoid defaults that force the database to rewrite every row. Instead, add the column as nullable, backfill in controlled batches, then add constraints or defaults afterward.
Second, know the locking behavior. PostgreSQL, MySQL, and other engines have different rules. Some ALTER TABLE operations trigger full table rewrites. In MySQL, for example, ADD COLUMN with a default may be instant or not, depending on the engine version and options. PostgreSQL can often add a nullable column instantly, but indexing it is another step that can cause contention.