Executando verificação de segurança...
1

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;
Carregando publicação patrocinada...
2

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()?