Re: index on lower(column) is very slow - Mailing list pgsql-general

From Greg Stark
Subject Re: index on lower(column) is very slow
Date
Msg-id 87y93rl15p.fsf@stark.dyndns.tv
Whole thread Raw
In response to Re: index on lower(column) is very slow  (valerian <valerian2@hotpop.com>)
Responses Re: index on lower(column) is very slow  (valerian <valerian2@hotpop.com>)
List pgsql-general
valerian <valerian2@hotpop.com> writes:

> I just realized that I was behind by one release, so I upgraded to pgsql
> 7.3.2, then added some more random data (18000 rows in the table now)
> and ran 'VACUUM FULL ANALYZE' again.  Here's the subsequent results:
>
> test=> EXPLAIN SELECT id, password FROM test WHERE LOWER(email) = 'pwcm6@pgaxd6hhuteforp966cz';
>                                     QUERY PLAN
> ----------------------------------------------------------------------------------
>  Index Scan using test_email_lc_idx on test  (cost=0.00..292.25 rows=91 width=16)
>    Index Cond: (lower((email)::text) = 'pwcm6@pgaxd6hhuteforp966cz'::text)
> (2 rows)

Try "explain analyze" which will actually run the query and print timing
information.

Also, note that the number of records returned is probably a big factor here.
The case-sensitive version is only returning 1 record whereas postgres expects
the case=insensitive version to return 91 records. Try the case-sensitive
version on a value that has a comparable number of records to for a better
test.

--
greg

pgsql-general by date:

Previous
From: Jean-Christian Imbeault
Date:
Subject: postgres process and ps stats
Next
From: "Greg Sabino Mullane"
Date:
Subject: Website advertisements