Re: [GENERAL] Fast join

Поиск
Список
Период
Сортировка
От Leon
Тема Re: [GENERAL] Fast join
Дата
Msg-id 3778E755.A3D759B6@udmnet.ru
обсуждение исходный текст
Ответ на Re: [GENERAL] Fast join  (Bruce Momjian <maillist@candle.pha.pa.us>)
Ответы Re: [GENERAL] Fast join
Re: [GENERAL] Fast join
Список pgsql-general
Bruce Momjian wrote:
>
> > > Also, if a join does most of the table, it is faster do not use indexes,
> > > and just sort on the backend.
> > >
> >
> > The problem is - when you want just a small part of the table(s) and
> > you have indices to facilitate qualifications, Postgres doesn't
> > use 'em !  This is a question of Life and Death - i.e. to use or
> > not to use Postgres.
>
> As I remember, your qualification was x > 10.  That may not be
> restrictive enough to make an index faster.

Oh, I'm sorry, it was a typo. But believe me, such behaviour is
persistent notwithstanding any type of qualification. It is, so
to say, tested and approved. Look at the explanations of Postgres
of his plan of query on database whose creation I showed you
earlier (it has two tables of 10000 rows, properly vacuumed):

-=--------------------------------
adb=>  EXPLAIN  SELECT COUNT(*) FROM atable WHERE atable.cfield = btable.cfield
AND atable.afield<10;
NOTICE:  QUERY PLAN:

Aggregate  (cost=1047.69 rows=3334 width=12)
  ->  Hash Join  (cost=1047.69 rows=3334 width=12)
        ->  Seq Scan on btable  (cost=399.00 rows=10000 width=4)
        ->  Hash  (cost=198.67 rows=3334 width=8)
              ->  Index Scan using aindex on atable  (cost=198.67 rows=3334
width=8)

adb=>  EXPLAIN  SELECT COUNT(*) FROM atable WHERE atable.cfield = btable.cfield
AND atable.afield>100;
NOTICE:  QUERY PLAN:

Aggregate  (cost=1047.69 rows=3334 width=12)
  ->  Hash Join  (cost=1047.69 rows=3334 width=12)
        ->  Seq Scan on btable  (cost=399.00 rows=10000 width=4)
        ->  Hash  (cost=198.67 rows=3334 width=8)
              ->  Index Scan using aindex on atable  (cost=198.67 rows=3334
width=8)
---------------------

It is clear that Postgres does hash join of the whole tables ALWAYS.

--
Leon.


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

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: [GENERAL] Fast join
Следующее
От: Herouth Maoz
Дата:
Сообщение: Re: [GENERAL] Fast join