Adding a new column is the smallest migration with the biggest impact. It changes the shape of your data and the future of your queries. The choice is rarely just about storage — it affects performance, schema design, and every function that touches the table.
In SQL, a new column can be created with a single ALTER TABLE statement. But in production systems, the steps are never just one command. You account for locks, replication lag, default values, constraint checks, and deployment strategy. A careless schema change can lock writes, slow reads, or crash an application under load. You measure twice with EXPLAIN and schema introspection before cutting.
For relational databases like PostgreSQL or MySQL, adding a nullable new column is often safe. Non-nullable columns with defaults can cause table rewrites and downtime. For large datasets, use an online schema migration tool like pt-online-schema-change or gh-ost to avoid blocking. In PostgreSQL, ADD COLUMN without a default is instant; adding a default fills rows and can be costly.
In analytics warehouses like BigQuery or Snowflake, adding a new column is simpler and often metadata-only. Still, you track schema evolution in version control and coordinate with downstream consumers so that ETL pipelines don't break on new fields.