我有一个表格查询:
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
...
这里的每个表实际上都是一个表值函数。此查询的运行时间超过一分钟,但当我手动创建临时表 ( CREATE TEMPORARY TABLE ax as SELECT * from a
) 并针对这些临时表运行查询时,它需要几毫秒(创建表也需要几毫秒)。
是什么导致了如此大的性能差异(至少两个数量级)?