Hi
I’m wondering why you don’t spilt the post and thread tables into two tables for each, one for hot threads and the other for warm threads. I mean by hot threads is the active one which currently receive a lot of requests (SELECT, INSERT, UPDATE, and DELETE). For example, we can consider any thread that have been posted or have one post during the past 3 days to be a hot thread. So, its will be stored into a HotThread and HotPost table. After 3 days from the last post the thread and its post should be moved to a warm tables which containe all threads in the forum.
The active threads are the most important threads in the forum, they are what we care about now and we need a better actions' time over them.
I belief the performance of the DBMS will be improved if we distinguish between active and inactive threads. Mysql will have an easy task to retrieve the requested thread and all its posts on hundreds of records, rather than over millions of mixed posts and threads.