Which is the fastest method for over all performance on a large scale with 1500-2000 active users on at once.
40+ member info fields
- put all fields in on table
- separate into 3 different tables and use a Left Join (although left joins can slow querying down)
- same as above but 3 separate queries to retrieve data
Will all 40+ fields be required for view not but about 30+ would be when viewing profiles, and about 15+ when doing search queries.
My thoughts keeping everything in one day means one quick query selecting the specific fields I want. Multiple tables although prettier means more queries and/or Left Joins to grab everything I need. Not a problem with a few users on but slow down would be noticeable with thousands. Any thoughts?
Less columns may be faster on MyISAM in case of static row length. In InnoDB (and I hope, you use this engine) there will be no benefit of separating tables.
My opinion – keep everything in one table.
Use apropriate solution in each case. For example: search – sphinx, sessions and user info – memcache.