bom dia, chegou a testar alguma outra solução? ou quer uma explicação de como otimizar query's?
SELECT ID, post_name, post_update
FROM (
SELECT ID, post_name, post_update, 1 AS sort_order
FROM wp_posts
INNER JOIN wp_term_relationships ON wp_term_relationships.object_id = wp_posts.ID
WHERE wp_term_relationships.term_taxonomy_id = '254'
AND wp_posts.post_status = 'publish'
AND wp_posts.ID != '10768'
UNION
SELECT ID, post_name, post_update, 2 AS sort_order
FROM wp_posts
INNER JOIN wp_term_relationships ON wp_term_relationships.object_id = wp_posts.ID
WHERE wp_term_relationships.term_taxonomy_id = '112'
AND wp_posts.post_status = 'publish'
AND wp_posts.ID != '10768'
UNION
SELECT ID, post_name, post_update, 3 AS sort_order
FROM wp_posts
INNER JOIN wp_term_relationships ON wp_term_relationships.object_id = wp_posts.ID
WHERE wp_posts.post_status = 'publish'
AND wp_posts.ID != '10768'
AND wp_posts.linguagem != 'en'
) AS subquery
ORDER BY RAND()
LIMIT 8;
Olá , @shedyhs obrigado pela resposta Usei sua fórmula e a consulta levou 0.9496s, no caso ficou ainda mais pesado
Fazendo uns testes mais a fundo no SQL do banco de dados, Descobri que o ultimo rand() está pesando muito a consulta, pois minha tabela wp_posts tem mais de 100.000 linhas.
Será que tem como gerar resultados aleatórios de uma forma mais otimizada, ou uma forma alternativa ao rand()?