У меня есть запрос вида:
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
) и запускаю запрос к ним, это занимает миллисекунды (и создание таблиц тоже занимает миллисекунды).
Что может быть причиной такой большой разницы в производительности (как минимум на два порядка)?
explain analyze
по вашему запросу. - person Craig Ringer   schedule 07.04.2013