Adding a new column to a production table is not just a schema tweak. It impacts queries, indexes, disk usage, and deploy times. Done carelessly, it can lock tables, block writes, or break applications. Done with precision, it lets your system evolve without downtime.
First, define the purpose of the new column. Know its data type, constraints, default values, and how existing rows will be populated. Avoid nullable columns if the data will always exist; avoid defaults that trigger costly writes during migration.
Next, plan the migration. On large tables, adding a new column can cause full table rewriting. In some databases, this is instant for certain types; in others, it can take hours. Use online schema change tools or phased rollouts to avoid blocking traffic. For MySQL and MariaDB, investigate ALGORITHM=INPLACE and LOCK=NONE options. For PostgreSQL, adding a nullable column without a default is usually instant, but setting a default later is safer than filling it immediately.