I have this query
SELECT DISTINCT t.*
, tt.*
FROM wp_terms t
JOIN wp_termmeta
ON t.term_id = wp_termmeta.term_id
JOIN wp_termmeta mt1
ON t.term_id = mt1.term_id
JOIN wp_termmeta mt2
ON t.term_id = mt2.term_id
JOIN wp_term_taxonomy tt
ON t.term_id = tt.term_id
WHERE tt.taxonomy IN ('episodes')
AND wp_termmeta.meta_key = 'episode_number'
AND mt1.meta_key = 'tr_id_post'
AND mt1.meta_value = '7547'
AND mt2.meta_key = 'season_number'
AND mt2.meta_value = '2'
ORDER
BY wp_termmeta.meta_value+0 ASC;
I don't know how to make it faster, it takes like 1.2 sec to execute, my website loads very hard because of it.
The following recommendations will help you in your SQL tuning process.
You'll find 3 sections below:
ALTER TABLE `wp_term_taxonomy` ADD INDEX `wp_taxonomy_idx_term_id_taxonomy` (`term_id`,`taxonomy`);
ALTER TABLE `wp_termmeta` ADD INDEX `wp_termmeta_idx_meta_key_meta_value_term_id` (`meta_key`,`meta_value`,`term_id`);
ALTER TABLE `wp_terms` ADD INDEX `wp_terms_idx_term_id` (`term_id`);
SELECT
DISTINCT t.*,
tt.*
FROM
wp_terms t
JOIN
wp_termmeta
ON t.term_id = wp_termmeta.term_id
JOIN
wp_termmeta mt1
ON t.term_id = mt1.term_id
JOIN
wp_termmeta mt2
ON t.term_id = mt2.term_id
JOIN
wp_term_taxonomy tt
ON t.term_id = tt.term_id
WHERE
tt.taxonomy IN (
'episodes'
)
AND wp_termmeta.meta_key = 'episode_number'
AND mt1.meta_key = 'tr_id_post'
AND mt1.meta_value = '7547'
AND mt2.meta_key = 'season_number'
AND mt2.meta_value = '2'
ORDER BY
wp_termmeta.meta_value + 0 ASC