Re: How to speed up this "translation" query?

Поиск
Список
Период
Сортировка
От Niklas Johansson
Тема Re: How to speed up this "translation" query?
Дата
Msg-id CCD0B1B3-697D-43F5-9054-2416FC81AE00@tele2.se
обсуждение исходный текст
Ответ на How to speed up this "translation" query?  (tlm <tlm1905@gmail.com>)
Список pgsql-performance
On 1 aug 2006, at 20.09, tlm wrote:
> SELECT q3.translation, q2.otherstuff
> FROM
> (
>   SELECT INPUT.word, q1.meaning_id, INPUT.otherstuff
>   FROM
>   INPUT
>   INNER JOIN
>   (
>     SELECT translation, meaning_id
>     FROM TRANS
>     WHERE translation IN (SELECT word FROM INPUT)
>   ) AS q1
>   ON INPUT.word = q1.translation
> ) AS q2
> LEFT JOIN
> (
>   SELECT translation, meaning_id
>   FROM TRANS
>   WHERE language_id=5
> ) AS q3
> ON q2.meaning_id=q3.meaning_id;

Maybe I'm not following you properly, but I think you've made things
a little bit more complicated than they need to be. The nested sub-
selects look a little nasty.

Now, you didn't provide any explain output but I think the following
SQL will achieve the same result, and hopefully produce a better plan:

SELECT t2.translation, i.otherstuff
FROM input i INNER JOIN trans t ON i.word=t.translation
INNER JOIN trans t2 ON t.meaning_id=t2.meaning_id
WHERE t2.language_id=5;

The query will also benefit from indices on trans.meaning_id and
trans.language_id. Also make sure the tables are vacuumed and
analyzed, to allow the planner to make good estimates.



Sincerely,

Niklas Johansson





В списке pgsql-performance по дате отправления:

Предыдущее
От: tlm
Дата:
Сообщение: How to speed up this "translation" query?
Следующее
От: "Milen Kulev"
Дата:
Сообщение: XFS filessystem for Datawarehousing