Adding a new column to a live database seems simple—until it isn’t. Schema changes can lock tables, block writes, and break queries. Even a single new column in PostgreSQL, MySQL, or any production SQL database can cause downtime if handled carelessly. The risk increases with large datasets, high write volumes, and complex indexes.
A new column changes storage layout. It can force full table rewrites or I/O spikes. For relational databases, it touches DDL operations that are often exclusive locks. When your services expect zero downtime, you need to control the blast radius.
Best practice: never run ALTER TABLE blindly in production. Instead, use safe migration patterns. For large tables, create the new column with a default of NULL to avoid backfilling in a single transaction. Update data in batches with controlled commit sizes. Only after the data is in place should you add constraints or not-null requirements. This keeps locks short and predictable.