Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Optimieren Sie eine UNION-Mysql-Abfrage

Was Sie im Grunde zeigen, ist, dass Sie ein Designproblem in Ihrem Modell haben, bei dem es scheint, dass bei der Implementierung von Super-/Subtypen die falsche Wahl getroffen wurde. Ihre funktionale Anforderung besteht darin, (ähnliche) Daten aus zwei verschiedenen Tabellen als einen einheitlichen Satz zu haben. Dies wäre einfach, wenn sich alle diese Zeilen in einer Tabelle befunden hätten. Die eigentliche Frage ist also, warum sie es nicht sind.

Sie können diese Abfrage immer noch schneller erhalten (nehme ich an), aber sie ist hässlich.

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