Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Otimizar uma consulta mysql UNION


O que você está basicamente mostrando é que você tem um problema de design em seu modelo, onde parece que a escolha errada foi feita ao implementar super/subtipos. Seu requisito funcional é ter dados (simulares) de duas tabelas diferentes como um conjunto uniforme. Isso seria simples se todas essas linhas estivessem em uma tabela. Então a verdadeira questão é por que eles não são.

Você ainda pode obter essa consulta mais rápido (suponho), mas é feio.
SELECT * FROM 
   (SELECT * FROM (select title, id, date as date_added from test1 
                  ORDER BY date_added DESC LIMIT 0,8) t1
    UNION ALL 
    SELECT * FROM (select title, customer as id, date_added from test2 
                  ORDER BY date_added DESC LIMIT 0,8) t2
   ) joined
ORDER BY date_added DESC
LIMIT 0,8