Enthalten Ihre Abfragen ORDER BY … LIMIT
? Klauseln?
Wenn Sie einen ORDER BY … LIMIT
eingeben nach einem UNION
, wird es auf die gesamte UNION
angewendet , und Indizes können in diesem Fall nicht verwendet werden.
Wenn id
ein Primärschlüssel ist, wird diese Abfrage sofort ausgeführt:
SELECT *
FROM table
ORDER BY id
LIMIT 1
, aber dieses hier nicht:
SELECT *
FROM table
UNION ALL
SELECT *
FROM table
ORDER BY id
LIMIT 1
Dies scheint auch an ORDER BY
zu liegen . Das Sortieren eines kleineren Satzes ist schneller als ein größerer.
Soll die Ergebnismenge sortiert werden?
Wenn nicht, entfernen Sie einfach das abschließende ORDER BY
.