Adding a new column is not just schema change. It’s a commitment. Data will live there, indexed or not, spread across rows in every table scan. The design must be correct before you run ALTER TABLE. Once you add it, rolling back is harder than most teams admit.
First, define the purpose. A new column should have a single, clear role. If it stores a flag, make it BOOLEAN. If it needs precision, pick DECIMAL over FLOAT. Avoid generic types that invite misuse. Naming is structural; choose concise names aligned with existing schema conventions.
Next, assess the impact. Adding a column can lock tables, stall writes, or degrade read performance. In high-traffic systems, use online DDL strategies or tools like pt-online-schema-change. For distributed databases and cloud-native systems, confirm compatibility with replication and sharding.
Plan for defaults. NULL is not always harmless; it can break logic in application code. If a sensible default exists, set it at creation to avoid later migrations. Test queries against realistic datasets before pushing changes to production; measure execution plans to catch regressions.