Originally Posted by
Diftraku
I'm assuming Vbulletin has built-in support for APC/Memcached? If not then please do tell me Vbulletin has some sort of caching system in place.
The page count shouldn't be that bad, really. Assuming the board is doing it correctly and doing a query along the lines of SELECT * FROM posts WHERE `threadID` = '893666' AND `deleted` = '0' LIMIT 0, 20; (I'm assuming a lot of things here and doing it mostly in pseudo SQL, for example: the limit should start from last post ID on previous page, instead of all the posts and assuming threadID is an index along with post state, using deleted as a on/off state since I don't remember how it worked in phpBB). Then again, MySQL is just silly DB platform...
It does have some caching, but I'm guessing it's not very efficient or they recompute things on each load. I haven't looked at exactly how the backend database is set up in our case, but I know it saves some pagination information (which is why you sometimes end up a page ahead of a post link in a thread with a lot of deleted posts).
My response from Zachery (vBulletin support / frequent MMOC visitor) specifically:
Code:
[ Zachery ] The query can get bad around 100k posts
[ Zachery ] in a single thread
[ Zachery ] esp if there is a lot of deletes in it
[ Zachery ] its worse for moderators
[ Zachery ] its a lot of data
[ Zachery ] and there is some math and a bad query we do to get page length
[ Zachery ] its legacy code
[ Zachery ] its been there for a bit
[ Zachery ] we tell customers to limit threads to about 1k posts and make a continued thread
[ Zachery ] anything up to 10k is normally safeish
[ Zachery ] depends on a lot of factors
You'd have to go to vBulletin for more information about how exactly they implement the system, though.