Adding a new column should be simple. In practice, it can break deployments, create data drift, and slow your team if done without a plan. Schema changes are high-impact operations, and even a single column addition affects queries, indexes, and application code paths.
When creating a new column in a production database, the first step is assessing the impact on read and write performance. Adding a column with a default value or a NOT NULL constraint often locks the table for the duration of the change. On large datasets, this can block transactions and cause downtime.
Use online schema change tools to minimize lock times. In MySQL, pt-online-schema-change or native ALTER TABLE ... ALGORITHM=INPLACE can help. In PostgreSQL, adding a nullable column without a default is instant, but populating it later should be done in batches to avoid load spikes.
Consider the effects on indexes. Adding a column to an existing index requires a full index rebuild. If queries will filter by this column, define the right index strategy from the start to prevent costly rework.