I got asked to look at a slow site and while there were a couple issues the biggest was that each get() on the template part was taking 40ms to return (every other query was taking 0.5ms as I'd expect).
This template should have been using get_group(), but was instead using 15 separate get('field_name') functions to query 15 separate fields, looped 30 times... so about 500 of these 40ms queries per page load.
I'm far from a MySQL expert, but indexing meta_id against post_id fixed the performance issues instantly.
I also noticed the query caching seems to of been removed between 2.0 and 2.0.1 for the get_data() function.
This site is multi-site, 13 sub-sites. CPTs have 5-10 fields added, 100s of posts. It's really not "that" big. the biggest table it 10MB, most are smaller.
Add index field to meta_id/post_id (issue #153)
Signed-off-by: Jon Brown <firstname.lastname@example.org>
Trying to make a pull request for: jb510@82e0c12
can you use EXPLAIN in a query with and without the index?
With that we can make sure about the performance improvement