Bevatten uw vragen ORDER BY … LIMIT
clausules?
Als u een ORDER BY … LIMIT
na een UNION
, wordt het toegepast op de hele UNION
, en indexen kunnen in dit geval niet worden gebruikt.
Als id
een primaire sleutel is, zal deze vraag onmiddellijk zijn:
SELECT *
FROM table
ORDER BY id
LIMIT 1
, maar deze niet:
SELECT *
FROM table
UNION ALL
SELECT *
FROM table
ORDER BY id
LIMIT 1
Dit lijkt ook te wijten te zijn aan ORDER BY
. Het sorteren van een kleinere set is sneller dan een grotere.
Moet de resulterende set worden gesorteerd?
Zo niet, verwijder dan gewoon de laatste ORDER BY
.