Re: partial indexed not being used. - Mailing list pgsql-novice

From Tom Lane
Subject Re: partial indexed not being used.
Date
Msg-id 6801.1171290094@sss.pgh.pa.us
Whole thread Raw
In response to Re: partial indexed not being used.  (Ron Arts <ron.arts@neonova.nl>)
Responses Re: partial indexed not being used.
List pgsql-novice
Ron Arts <ron.arts@neonova.nl> writes:
> # select count(*) from cdr where billed = false;
>   count
> -------
>       3
> (1 row)

>> =# explain select cdr.* from cdr where billed = false order by calldate;
>>
>>                             QUERY PLAN
>> -------------------------------------------------------------------
>>  Sort  (cost=37448.75..37526.94 rows=31273 width=465)
>>    Sort Key: calldate
>>    ->  Seq Scan on cdr  (cost=0.00..20323.81 rows=31273 width=465)
                                                ^^^^^^^^^^
>>          Filter: (billed = false)

You haven't ANALYZEd this table (lately, or perhaps ever).  The planner
is thus working with a default selectivity estimate (which I think is
50% for a bool column --- that seems to match your numbers anyway), and
that leads it to the conclusion that a seqscan is the right thing.
Which it would indeed be, if half the table has to be retrieved.

            regards, tom lane

pgsql-novice by date:

Previous
From: Andreas
Date:
Subject: Re: Help whit schemas
Next
From: Ron Arts
Date:
Subject: Re: partial indexed not being used.