Why not just have a cron job that updates a row in the datasotre whenever its called with the amount of posts made in a time frame?
Doing an aggregate on the posts table (and users table) every page load will bring most large boards to their knees.
I fact, if those queries were changed to 'today' instead of last visit... you could run a cron job nightly... save the results in the datastore... and eliminate most of your queries which in turn should bring your page generation down to a much more acceptable amount.
If not... maybe make it a configurable option. That way users could decide which way they wanted to do it to suit their needs better.
|