A new column in a database table seems small. It is not. Schema changes alter the contract between code and data. Done wrong, they crash queries, break integrations, and trigger full rollbacks. Done right, they expand capability without slowing a single transaction.
The core decision: migration strategy. Online migrations let you add a new column without locking the table. Tools like pt-online-schema-change and gh-ost stream changes in the background, so reads and writes continue uninterrupted. Native features in PostgreSQL and MySQL have improved, but each engine has limits. Always match the method to table size, index complexity, and concurrency patterns.
Performance matters. Adding a new column with a default value in a large table can rewrite billions of rows. If the default must be static, consider creating the column as nullable and backfilling values in batches. This avoids transaction locks and replication lag.