From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Rodrigo Barboza <rodrigombufrj(at)gmail(dot)com> |
Cc: | "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Query not using index for user defined type |
Date: | 2013-04-15 20:33:46 |
Message-ID: | 8234.1366058026@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Rodrigo Barboza <rodrigombufrj(at)gmail(dot)com> writes:
> I created a type 'mytype' (an unsigned int) and created an operator class
> for index.
> Then I created a table with a column of my type and isnerted 1000 entries.
> But no matter how many entries I have in the table, it never uses the
> index. It always does a seq scan.
> Here is the explain analyze with 1000 entries:
> explain analyze select * from mytable where a > 120::mytype and a <
> 530::mytype;
> ---------------------------------------------------------------------------------------------------
> Seq Scan on mytable (cost=0.00..19.02 rows=400 width=4) (actual
> time=0.023..0.229 rows=409 loops=1)
> Filter: ((a > '120'::mytype) AND (a < '530'::mytpe))
> Total runtime: 0.297 ms
Using a seqscan to fetch 400 out of 1000 entries is the right thing.
(The crossover point where an index becomes unhelpful is a lot closer
to 1% of the table than it is to 40%.)
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Simon Riggs | 2013-04-15 20:34:14 | Re: COPY and Volatile default expressions |
Previous Message | Jaime Casanova | 2013-04-15 20:32:29 | Re: COPY and Volatile default expressions |