クエリにORDER BY … LIMITが含まれていますか 条項?
ORDER BY … LIMITを入力した場合 UNIONの後 、UNION全体に適用されます 、およびこの場合、インデックスは使用できません。
idの場合 は主キーであり、このクエリは即座に実行されます:
SELECT *
FROM table
ORDER BY id
LIMIT 1
、しかしこれはしません:
SELECT *
FROM table
UNION ALL
SELECT *
FROM table
ORDER BY id
LIMIT 1
これもORDER BYが原因のようです 。小さいセットの並べ替えは、大きいセットよりも高速です。
結果のセットを並べ替える必要がありますか?
そうでない場合は、最後のORDER BYを削除してください 。