When you add a new column to a table, you are altering the schema—a contract your database enforces. The first decision: whether the column allows NULL or has a default value. This choice impacts every row, every index, and every single query touching that table.
For large datasets, adding a new column is not just a quick schema migration. On some engines, it locks the table. On others, it streams changes online. In PostgreSQL, adding a nullable column with no default is instant. Adding one with a default rewrites the whole table, costing time and I/O. In MySQL, behavior varies by storage engine. In distributed systems like BigQuery or Snowflake, the operation is logical and near-instant, but downstream pipelines may still break if they expect a fixed column set.
Indexes are another factor. You may add an index for the new column from the start, or let the system run without it until you identify query patterns. Early indexing reduces query cost but slows inserts and updates.