@Marilzon Acabei descobrindo que o que estava pensando na minha consulta era o último rand(), pois minha tabela tem mais de 100.000 linhas
mas mesmo com rand(), sua consulta processou em 0.0064s o que já é incrivel,
Mas não está retornando do mesmo jeito do código original
(Editado) E testando mais a fundo no SLQ do Banco de dados, percebi que todos os posts da consulta tem relação com a categoria e com as tags, por isso que ficou leve a consulta. Pois ele não está buscando os posts aleatórios como na consulta original.
Eu preciso que ele retorne
2 posts que tenha relação a tag ("254") se existir
e 2 posts que tenha relação a categoria ("112") se existir
E depois gere o restante aleatóriamente em no máximo 8 resultados ao todo.
Existe outra forma de gerar valores aleatórios sem usar o rand()?