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

ORDER BY-Bedingung

UNION bedeutet UNION DISTINCT und dies ist relativ langsam, da es nach Duplikaten sucht, obwohl es keine gibt. Sie wollen UNION ALL:

SELECT *, 0 AS head FROM foo WHERE id IN (1,2,3) 
UNION ALL
SELECT *, 1 AS head FROM foo WHERE id NOT IN (1,2,3)
ORDER BY head, created_date

Ich würde mir vorstellen, dass es nach dieser Änderung keinen großen Leistungsunterschied zwischen den drei Abfragen gibt. Der beste Weg, um sicher zu sein, ist es zu messen.