sql >> Database >  >> RDS >> Mysql

Optimaliseer een UNION mysql-query

Wat je eigenlijk laat zien, is dat je een ontwerpprobleem hebt in je model waarbij het lijkt alsof de verkeerde keuze is gemaakt bij het implementeren van super/subtypes. Uw functionele vereiste is om (vergelijkbare) gegevens uit twee verschillende tabellen als één uniforme set te hebben. Dit zou eenvoudig zijn als al die rijen in één tabel hadden gestaan. Dus de echte vraag is waarom ze dat niet zijn.

Je kunt deze query nog steeds sneller krijgen (neem ik aan), maar het is lelijk.

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 


  1. Tel cumulatief totaal in Postgresql

  2. SQLite - Gegevens exporteren naar een CSV-bestand

  3. PostgreSQL-triggers en basisfuncties voor opgeslagen functies

  4. Django-migraties:een primeur