Re: TimeOf(Subselects|Joins)FromLargeTables?

Поиск
Список
Период
Сортировка
От Dann Corbit
Тема Re: TimeOf(Subselects|Joins)FromLargeTables?
Дата
Msg-id D90A5A6C612A39408103E6ECDD77B829BC018E@voyager.corporate.connx.com
обсуждение исходный текст
Ответ на TimeOf(Subselects|Joins)FromLargeTables?  ("Hegedus, Tamas ." <Hegedus.Tamas@mayo.edu>)
Ответы Re: TimeOf(Subselects|Joins)FromLargeTables?  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
> -----Original Message-----
> From: Hegedus, Tamas . [mailto:Hegedus.Tamas@mayo.edu]
> Sent: Friday, June 04, 2004 5:18 PM
> To: 'pgsql-hackers@postgresql.org'
> Subject: [HACKERS] TimeOf(Subselects|Joins)FromLargeTables?
>
>
> Dear All,
>
[snip]
> ---------------------------------------------
> What should I expect from the following (similar with joins)
> queries? How should I optimize the indexes? Which one to use?
>
> SELECT name, seq FROM prots WHERE fid in (SELECT fid FROM kwx
> WHERE kw_acc=812 AND kw_acc=215);

This query is a false tautology and hence will return zero rows.  The
attribute kwx cannot be simultaneously 812 and 215.

> SELECT name, seq FROM prots
> WHERE fid in (SELECT fid FROM kwx WHERE kw_acc=812 OR kw_acc=215);

I suspect that this query would be better formulated as:
SELECT prots.name, prots.seq
FROM prots, kwx
WHERE      prots.fid = kwx.fid AND kwx.kw_acc IN (812, 215);

I think joins give the planner better options than subselects and also
an in-list is going to do better than a list of constants separated by
OR.

Though you should test them both and see what the planner says.

[snip]


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

Предыдущее
От: "Hegedus, Tamas ."
Дата:
Сообщение: TimeOf(Subselects|Joins)FromLargeTables?
Следующее
От: Lamar Owen
Дата:
Сообщение: Re: Official Freeze Date for 7.5: July 1st, 2004