最適化の問題が発生しました。次の変更が回避策として機能するようです。
前 (100 秒以上):
SELECT t1.*,t2.a AS t2_a,t2.b AS t2_b FROM ... JOIN ... WHERE ... GROUP BY ... ORDER BY ... LIMIT 5
後 (0.01 秒):
SELECT * FROM
(SELECT t1.*,t2.a AS t2_a,t2.b AS t2_b FROM ... JOIN ... WHERE ... GROUP BY ... ORDER BY ...) AS x
LIMIT 5
このタイプの最適化が私の場合に最適かどうかの問題は別として (私の調査では、実装するのが最も実用的であることがわかっています)、これら 2 つの形式はすべての場合に同じ結果を返すことが保証されていますか?
内部クエリには多くの JOIN が含まれている可能性がありますが、他のサブクエリや UNION は含まれていないと想定できます (つまり、単純な SELECT です)。私の場合、内部クエリはユーザー入力によって大きく異なる可能性があるため、これをクエリ フォームに関する一般的な質問として構成しています。