Adding a new column sounds simple. In production systems, it can be the start of a migration that touches millions of rows, shifts indexes, and demands zero downtime. The wrong move can lock writes, block reads, and trigger alerts across every dashboard.
The first step is deciding the column type. Stick to data types that match your queries. Use fixed-width types for predictable performance. Store JSON only if you need flexible schemas, and even then, index what you query most.
Next, plan the migration path. In PostgreSQL, ADD COLUMN with a default value rewrites the table, blocking operations. To avoid this, add the column without a default, then run an update in batches. MySQL operations vary by engine—check if your storage engine supports instant DDL changes. For distributed databases, coordinate schema updates across nodes to prevent inconsistent queries.