A new column in a relational database seems small. But it changes schema, migrations, indexes, and the code that consumes them. In systems under load, “small” changes can cascade into huge outages. Adding a column the wrong way can lock tables for minutes or hours. The right way avoids downtime and keeps services fast.
Start by defining the new column in your migration scripts. If you need defaults or NOT NULL constraints, set them with care. In MySQL or Postgres, altering a large table can trigger a full rewrite. To minimize this, create the column as nullable, backfill it in batches, and apply constraints after. This reduces locks and keeps read and write latency stable.
Indexes deserve attention. A new index on the new column can speed lookups, but can also spike CPU during creation. For high-traffic databases, build indexes concurrently where supported. In PostgreSQL, use CREATE INDEX CONCURRENTLY to avoid blocking writes. In MySQL, online DDL options help reduce downtime.