A new column is never just a field. It is a decision about structure, performance, and future growth. Add it right, and your system scales cleanly. Add it wrong, and you invite technical debt that will stalk you for years.
When you create a new column, start with the data type. Keep it as narrow as possible. Small numeric types, fixed-length strings, and proper null handling reduce storage costs and query times. Index only if the column will be queried often—every index adds write overhead and can slow down inserts.
Consider the migration path. For large tables, an ALTER TABLE can lock writes for seconds or hours. Use online schema changes through tools like pt-online-schema-change or native database features to avoid downtime. If you must backfill values, do it in controlled batches to keep load predictable.
Think about constraints. A NOT NULL column demands a default, which can be static or generated through logic. Enforce foreign keys only when relational integrity is critical; otherwise, handle validation in the application layer to reduce locking contention.