Re: Hash Join not using hashed index?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Hash Join not using hashed index?
Дата
Msg-id 15408.962204177@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Hash Join not using hashed index?  (Ang Chin Han <angch@pintoo.com>)
Ответы Re: Hash Join not using hashed index?  (Ang Chin Han <angch@pollcities.com>)
Список pgsql-sql
Ang Chin Han <angch@pollcities.com> writes:
>> The planner could choose to use an indexscan on a hash index
>> as an input for the join, but it'd only be likely to do so
>> if there is a restriction clause matching the index.  In your
>> example you have only a join WHERE clause.

> Well, in my original query, there was, but the plan's the same.
> Probably the clause wasn't restrictive enough (" and region < n").

If it was like that then a hash index wouldn't have been applicable
anyway; hashes are only good for strict equality checks.  If you want
something that can do ordering checks you need a btree index.

(There are good reasons why btree is the default index type ;-))

> Original cost est:
> Hash Join  (cost=8.85..16.76 rows=75 width=18)
>   -> Seq Scan on city  (cost=0.00..1.75 rows=75 width=16) 
>   -> Hash  (cost=5.53..5.53 rows=253 width=2)
>        -> Seq Scan on country  (cost=0.00..5.53 rows=253 width=2) 

> I guess the problem is that country-city is a one-to-many relation,
> BUT I've more countries than cities (note the # of rows above), thus
> throwing the planner off...

Off what?  This looks like a pretty reasonable plan to me, given the
fairly small table sizes.  Do you have evidence that another plan
type would be quicker for this problem?
        regards, tom lane


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

Предыдущее
От: Andrés Mauricio Marín Restrepo
Дата:
Сообщение: HI! Problems with cursors into triggers
Следующее
От: Erik Tennant
Дата:
Сообщение: Re: finding (and recycling) holes in sequences