У меня есть следующий запрос в WordPress, который работает с очень большими таблицами. Есть ли способ реорганизовать его, чтобы он работал быстрее? В настоящее время это занимает 8 секунд, и это слишком медленно для моего случая использования, когда мне нужно называть его 600K раз. Бит wp_term_taxonomy.term_id = 18
будет динамичным, как в: wp_term_taxonomy.term_id = category_id
Как я могу заставить этот запрос WordPress MySql работать быстрее?
SELECT `ID` AS athlete_id, `post_title` AS athlete_name, `post_name` AS athlete_slug,
body_weight.weight, performance.speed
FROM `wp_posts`
INNER JOIN
(SELECT `post_id`, `meta_value` AS weight
FROM `wp_postmeta`
WHERE (`meta_key` = 'athlete_weight')
) body_weight ON wp_posts.ID = body_weight.post_id
INNER JOIN
(SELECT `post_id`, `meta_value` AS speed
FROM `wp_postmeta`
WHERE (`meta_key` = 'athlete_speed')
) performance ON wp_posts.ID = performance.post_id
LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
LEFT JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id =
wp_term_taxonomy.term_taxonomy_id)
LEFT JOIN wp_terms ON (wp_terms.term_id = wp_term_taxonomy.term_id)
WHERE wp_posts.post_status = 'publish'
AND wp_posts.post_type = 'athlete'
AND ((wp_term_taxonomy.taxonomy = 'athletics_category'
AND wp_term_taxonomy.term_id = 18)
OR (wp_terms.term_id is null)
);
спасибо! Разница драматична! Запрос теперь выполняется за 0,6 секунды ... – KalenGi