Premature optimization is ...
Separating columns into another table has disadvantages:
- Some operations requiring a single request require two requests or a combination
- This is not trivial to ensure that each row in each table must have a corresponding row in another. Thus, you may run into integrity issues.
On the other hand, at best, it is doubtful that this will improve performance. If you cannot prove this in advance (and creating a ten millionth record table with random data and doing some queries is trivial), I would not do that. Valid Doug Kress suggestions for encapsulation and SELECT * exclusion.
The only reason this is done is because your single table design does not normalize, and normalization involves splitting the table.
source share