Re: index on lower(column) is very slow

From: Greg Stark <gsstark(at)mit(dot)edu>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: index on lower(column) is very slow
Date: 2003-03-07 14:08:34
Message-ID: 87y93rl15p.fsf@stark.dyndns.tv
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

valerian <valerian2(at)hotpop(dot)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(at)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(at)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

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Greg Sabino Mullane 2003-03-07 14:15:13 Website advertisements
Previous Message Kaare Rasmussen 2003-03-07 14:06:07 Re: My contract has been renewed