Mysql
 sql >> Database >  >> RDS >> Mysql

Ottimizza una query mysql UNION

Ciò che stai fondamentalmente mostrando è che hai un problema di progettazione nel tuo modello in cui sembra che sia stata fatta la scelta sbagliata durante l'implementazione di super/sottotipi. Il tuo requisito funzionale è di avere dati (simultanei) da due tabelle diverse come un insieme uniforme. Questo sarebbe semplice se tutte quelle righe fossero state in una tabella. Quindi la vera domanda è perché non lo sono.

Puoi ancora ottenere questa query più velocemente (presumo) ma è brutta.

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