Adding a new column should be simple. In reality, the wrong approach can lock tables, slow reads, or break production. The right process depends on your database engine, schema size, and uptime requirements.
In PostgreSQL, ALTER TABLE ... ADD COLUMN is instant when adding a nullable column with no default. The moment you add a default value to an existing table, the system rewrites the whole table. For large tables, this means downtime. To avoid it, create the new column as nullable, backfill data in batches, then set the default and constraints once complete.
In MySQL, adding a new column can trigger a full table copy. For huge datasets, online schema change tools like pt-online-schema-change or native ALTER TABLE ... ALGORITHM=INPLACE (when supported) keep the database responsive during migration. Know the exact version you are running—capabilities differ between releases.
With NoSQL systems, adding a new column is usually as simple as adding a new field in the document. Still, you need a migration plan for old records and code paths. Schema-less does not mean migration-less.