Hopefully someone here can help me with this, because I'm about out of ideas.
I use the following query to pull the last 10 threads on pretty much every page on my site...
PHP Code:
SELECT
thread.threadid,thread.title,replycount,postusername,postuserid,thread.dateline,views,lastposter,lastpost
".iif($showthreadicon,',thread.iconid as iconid,icon.title as icontitle,icon.iconpath as iconpath','')."
FROM thread
".iif ($showthreadicon,'LEFT JOIN icon ON icon.iconid=thread.iconid','')."
WHERE open<>10 $iforumperms
ORDER BY thread.lastpost DESC
LIMIT 10
The problem with the speed seems to arise from the $iforumperms part, which ends up looking something like this:
PHP Code:
AND forumid=1 OR forumid=5 OR forumid=9 OR forumid=2 OR forumid=3 OR forumid=4... etc
I added an index on the thread.lastpost column which helped with the speed, but only if I remove the $iforumperms part from the query. If I don't have the $iforumperms it takes about 0.001 seconds to execute that query, but when the $iforumperms part is added back in it takes closer to 0.4 seconds to load. I tried adding an index on the thread.forumid just incase, but that didn't help at all. Does anyone have any ideas of another way I could speed that up and keep the forum permissions as well? Any help would be much appreciated.