Re: Performance improvement for joins where outer side is unique

Поиск
Список
Период
Сортировка
От Tomas Vondra
Тема Re: Performance improvement for joins where outer side is unique
Дата
Msg-id 54EE24DC.4000409@2ndquadrant.com
обсуждение исходный текст
Ответ на Re: Performance improvement for joins where outer side is unique  (David Rowley <dgrowleyml@gmail.com>)
Ответы Re: Performance improvement for joins where outer side is unique
Список pgsql-hackers
Hi David,

I've been looking at this patch, mostly because it seems like a great
starting point for improving estimation for joins on multi-column FKs.

Currently we do this:
 CREATE TABLE parent (a INT, b INT, PRIMARY KEY (a,b)); CREATE TABLE child  (a INT, b INT, FOREIGN KEY (a,b)
                       REFERENCES parent (a,b));
 
 INSERT INTO parent SELECT i, i FROM generate_series(1,1000000) s(i); INSERT INTO child  SELECT i, i FROM
generate_series(1,1000000)s(i);
 
 ANALYZE;
 EXPLAIN SELECT * FROM parent JOIN child USING (a,b);
                               QUERY PLAN ---------------------------------------------------------------------  Hash
Join (cost=33332.00..66978.01 rows=1 width=8)      Hash Cond: ((parent.a = child.a) AND (parent.b = child.b))    ->
SeqScan on parent  (cost=0.00..14425.00 rows=1000000 width=8)    ->  Hash  (cost=14425.00..14425.00 rows=1000000
width=8)     ->  Seq Scan on child  (cost=0.00..14425.00 rows=1000000 width=8) (5 rows)
 

Which is of course non-sense, because we know it's a join on FK, so the
join will produce 1M rows (just like the child table).

This seems like a rather natural extension of what you're doing in this
patch, except that it only affects the optimizer and not the executor.
Do you have any plans in this direction? If not, I'll pick this up as I
do have that on my TODO.

regards

-- 
Tomas Vondra                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: collations in shared catalogs?
Следующее
От: Josh Berkus
Дата:
Сообщение: Re: Partitioning WIP patch