The table is broken. Queries stall. Reports misfire. The problem is clear: you need a new column.
A new column changes the shape of your data. It unlocks joins you couldn’t write, filters you couldn’t run, and computations you couldn’t store. Adding one is not just a schema tweak — it’s a structural upgrade. Done well, it keeps migrations fast, avoids downtime, and preserves the integrity of every row.
When planning a new column, start with its type. Choose the smallest type that holds your data. Use INT instead of BIGINT unless you truly need the range. For text, define limits. A constrained VARCHAR can be indexed efficiently, while an unconstrained TEXT may drag performance.
Next, decide defaults and nullability. Defaults save time for inserts. Explicit null rules prevent silent failures and make indexing more predictable. If the column represents a computed value, consider generating it on the fly, or using a stored computed column if your database supports it.