A resposta mais definitiva é testar cada método, porém o
UNION
é mais provável que seja mais rápido, pois apenas uma consulta é executada pelo MySQL, em oposição a 4 para cada parte da união. Você também remove a sobrecarga de ler os dados na memória em PHP e concatená-los. Em vez disso, você pode apenas fazer um
while()
ou foreach()
ou o que quer que seja em um resultado.