Adding a new column can be simple or destructive, depending on scale, locking, and how your database engine handles schema changes. At small scale, ALTER TABLE ... ADD COLUMN runs fast and without drama. At large scale, that same command can lock writes, block reads, or trigger hours of outage.
In PostgreSQL, adding a column without a default is nearly instant—metadata only. But adding a column with a non-null default rewrites the entire table. That rewrite can be millions of rows, and it can lock the table for the duration. Use ADD COLUMN ... DEFAULT with caution, or add the column first, then update in batches.
MySQL behaves differently. In older versions, ALTER TABLE creates a copy of the table, writes every row, and swaps files—a process that can be costly on large datasets. Newer versions, with ALGORITHM=INPLACE or ALGORITHM=INSTANT, can add some types of columns without full table copy. Always check information_schema.innodb_online_alter_log_max_size and engine docs before assuming instant changes.