次の形式のクエリがあります。
SELECT a.id, b.colb, c.colc, d.cold, ...
FROM a JOIN b on a.id=b.id
JOIN c on a.id=c.id
JOIN d on a.id=d.id
JOIN e on a.id=e.id
...
ここの各テーブルは、実際にはテーブル値関数です。このクエリの実行時間は 1 分以上ですが、一時テーブル ( CREATE TEMPORARY TABLE ax as SELECT * from a
) を手動で作成し、それらに対してクエリを実行すると、数ミリ秒かかります (テーブルの作成にも数ミリ秒かかります)。
この大きなパフォーマンスの違い (少なくとも 2 桁) の原因は何ですか?