Re: [PERFORM] Number of characters in column preventing index usage

2017-02-17 Thread Hustler DBA
Thanks you guys are correct... the size of the table caused the optimizer to do a seq scan instead of using the index. I tried it on a 24 MB and 1 GB table and the expected index was used. On Fri, Feb 17, 2017 at 7:04 PM, Tom Lane wrote: > "David G. Johnston" writes: > > On Fri, Feb 17, 2017

Re: [PERFORM] Number of characters in column preventing index usage

2017-02-17 Thread Tom Lane
"David G. Johnston" writes: > On Fri, Feb 17, 2017 at 3:49 PM, Tomas Vondra > wrote: >> That may seem a bit strange, but I'd bet it finds the short value in some >> statistic (MCV, histogram) ans so can provide very accurate estimate. > ​I'm not seeing how any of the statistic columns would capt

Re: [PERFORM] Number of characters in column preventing index usage

2017-02-17 Thread David G. Johnston
On Fri, Feb 17, 2017 at 3:49 PM, Tomas Vondra wrote: > That may seem a bit strange, but I'd bet it finds the short value in some > statistic (MCV, histogram) ans so can provide very accurate estimate. ​​ -> Index Only Scan using tab_idx1 on tab (cost=0.27..8.29 rows=1 width=0) (actual time=0

Re: [PERFORM] Number of characters in column preventing index usage

2017-02-17 Thread Hustler DBA
Yes, both queries are the same, I just shorten the parameter value to see what would have happened. The database that I inherited has a column that stores GUID/UUIDs in a varchar(255) and a select on that table on that column is doing a FULL TABLE SCAN (seq scan). All the values in the column are 3

Re: [PERFORM] Number of characters in column preventing index usage

2017-02-17 Thread Tomas Vondra
On 02/17/2017 11:42 PM, David G. Johnston wrote: On Fri, Feb 17, 2017 at 3:19 PM, Hustler DBA mailto:hustler...@gmail.com>>wrote: my_db=# create index tab_idx1 on tab(ID); CREATE INDEX my_db=# explain (analyze, buffers) select count(*) from tab where ID = '01625cfa-2bf8-45cf' ;

Re: [PERFORM] Number of characters in column preventing index usage

2017-02-17 Thread Alvaro Herrera
Hustler DBA wrote: > I am seeing this strange behavior, I don't know if this is by design by > Postgres. > > I have an index on a column which is defined as "character varying(255)". > When the value I am searching for is of a certain length, the optimizer > uses the index but when the value is lo

Re: [PERFORM] Number of characters in column preventing index usage

2017-02-17 Thread Tomas Vondra
Hi, On 02/17/2017 11:19 PM, Hustler DBA wrote: I am seeing this strange behavior, I don't know if this is by design by Postgres. I have an index on a column which is defined as "character varying(255)". When the value I am searching for is of a certain length, the optimizer uses the index but w

Re: [PERFORM] Number of characters in column preventing index usage

2017-02-17 Thread David G. Johnston
On Fri, Feb 17, 2017 at 3:19 PM, Hustler DBA wrote: > > my_db=# create index tab_idx1 on tab(ID); > > CREATE INDEX > my_db=# explain (analyze, buffers) select count(*) from tab where ID = ' > 01625cfa-2bf8-45cf' ; > QUERY PLAN > >