Thanks for the replies guys...
Smartys wrote:In a quick glance, here was one query I found (from post.php):
$result = $db->query('SELECT poster, message FROM '.$db->prefix.'posts WHERE id='.$qid) or error('Unable to fetch quote info', __FILE__, __LINE__, $db->error());
So, it prevents having to join the users table into the query when fetching a quote
What's wrong with joining the users table? It's a single lookup in a BTREE index. The cost should be negligible.
On the other hand, every time the posts table is accessed in a way that can't be wholly covered by the index, all those username fields are being read from disk and taking up any memory cache space. This probably has a higher overall cost than the above.
I'm not saying you're wrong (I only joined today so it would be a bit rude anyway!), but I would caution against assuming joins are bad (unless it's already been performance tested). In general, smaller tables and more joins is better.
Rickard wrote:The poster column is needed for guest posts.
Oops, I'd forgotten about this functionality (because personally I probably won't use it...)
Well I guess if the column were made nullable and only used for anonymous posts, then it shouldn't hurt.