The database froze. Queries slowed to a crawl. The problem was simple: you needed a new column.
Adding a new column sounds small, but done wrong it can lock tables, block writes, and take down production. The operation must be fast, safe, and backward-compatible. In SQL, the ALTER TABLE ADD COLUMN command is the common choice. But with large datasets, it can trigger heavy locking. On modern MySQL and PostgreSQL, online DDL strategies like ADD COLUMN ... DEFAULT with defaults handled in application code can reduce downtime.
A new column should always be added in a way that allows both old and new code to run during deployment. Start by adding the column as nullable, without defaults. Deploy schema changes first. Deploy the code that writes to and reads from the column second. Once traffic flows cleanly and data is backfilled, enforce constraints and defaults.