Adding a new column sounds simple until you factor in production traffic, write-heavy tables, and uptime guarantees. Done wrong, it can trigger locks, timeouts, and cascading failures. Done right, it happens invisibly, without a user noticing.
A new column in a relational database is more than a structural edit. It affects queries, indexes, replication, and the application code that consumes it. Choosing the right migration strategy is not optional. Use ALTER TABLE carelessly, and you risk extended table locks. On large datasets, this can block reads and writes long enough to breach SLAs.
The safe approach depends on the database system. In PostgreSQL, adding a nullable column with a default value cements the default for future rows without rewriting the table. In MySQL or MariaDB, certain ALTER operations can still require a table copy, so tools like Percona’s pt-online-schema-change or gh-ost become essential.