[wp-hackers] get_userdata and _fill_user causing huge number of database queries
mpretty at voceconnect.com
Thu Mar 4 15:24:05 UTC 2010
A couple of suggestions:
1. Add paging to your listing so that you don't loop through 50+ posts
on a single page.
2. In WP 3.0 there has been a revamp of the user handling with
caching. At the beginning of this page, before you start your loop and
calling the_post(), you can loop through $_GLOBAL['wp_query']->posts and
get the user_ids that are needed to be cached. Then you can use the new
functionality for cache_users() to go ahead and cache the user data with
a single query.
On 3/4/10 9:19 AM, Simon B wrote:
>> The test script is really the worst case scenario, I was under the
>> impression you were seeing those 101 queries on the home page/blog page.
>> Whilst i havnt looked into trunk's user caching changed of late yet, It
>> makes sense to mass-load/cache the user data in one swipe on get_posts where
>> multiple authors are concerned.
> It's not a worst case for me, it's actual case! And it's likely to be the
> most-visited page on the site...
> I realise this is not your average use of WordPress, but if the user data
> could be cached in one swipe that would be a big help.
> Luckily the site is unlikely to see very high traffic so I'm confident our
> server can cope fine, but obviously saving 100 db queries would be nice!
> Thanks for your time,
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
More information about the wp-hackers