When you create a new column in a relational database, you alter the schema. This action triggers locks, migrations, and sometimes downtime. You must choose the data type with care. A misaligned type can slow joins, waste storage, and break downstream systems.
Performance impact starts immediately. On large tables, adding a nullable column is faster but can still trigger table rewrites, depending on the engine. Adding a non-nullable column with a default often rewrites all rows, consuming I/O and CPU. Know your database: PostgreSQL, MySQL, and SQL Server handle this differently. In distributed databases, the operation can ripple through shards and replicas, affecting replication lag and read consistency.
Indexes deserve attention. A new column without an index might be harmless to writes but costly to reads if queried heavily. Adding an index during creation can double the migration time. If the column will be part of a composite index, plan its order and cardinality before deployment.