Yeah, true - If MySQL caching is set up properly, when you INSERT a new post you are taken to the thread, which then performs a SELECT to get the new post - not in all casesI'm not sure how Xenforo implements this but you should not have to hammer the database...To be effective, you're looking at a new SELECT (searching database) query every 5-10 seconds. If you have 200 visitors all in a thread, you're looking at around 200 SELECT queries every 5-10 seconds.
2. Use websockets to push new messages out to a user when they are received. The user does not have to poll the server for new posts.
This would then store the SELECT in cache allowing the auto refresh to access the cache results instead of a brand new select
Could also store the # of replies in a column for thread info instead of the thread replies table being queried. This is an extremely fast query to run, so even if done manually w/ ignoring the cache, the performance hit would not be much