Thread: functional index "real world" uses

functional index "real world" uses

From
David Garamond
Date:
I want to know how functional indexes are used "in the real world". Here
are the common uses:

* non-unique index on the first parts of a longish text field
(SUBSTRING(field)) to save disk space, while still allowing faster
searches than a sequential scan.

* indexing on LOWER(field)/UPPER(field) to allow case-insensitive
searches or case-insensitive unique constraint.

In what other scenario are you using functional index? Searching the
archives, I found someone indexing a date as 'YYYYMMDD', probably to
allow searching using LIKE 'YYYY%' or LIKE 'YYYYMM%'. I've also thought:

* creating a REVERSE_DOT(field) function for IP addresses and hostnames
to allow wildcard searches (*.yahoo.com) using 'REVERSE_DOT(f) LIKE
'com.yahoo.%'.

* creating a HOSTPART(field) and LOCALPART(field) for email addressess;

Has anyone done something like this or other tricks using functional
indexes? It seems potential to simplify data model (no need to store
email addresses as host + part, etc).

--
dave

Re: functional index "real world" uses

From
Alvaro Herrera
Date:
On Fri, Feb 06, 2004 at 12:29:07AM +0700, David Garamond wrote:

> * creating a REVERSE_DOT(field) function for IP addresses and hostnames
> to allow wildcard searches (*.yahoo.com) using 'REVERSE_DOT(f) LIKE
> 'com.yahoo.%'.

I know a local telco company (hum, is this RAS syndrome?) uses this,
reversing phone numbers, so they allow search by prefix and suffix.

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Right now the sectors on the hard disk run clockwise, but I heard a rumor that
you can squeeze 0.2% more throughput by running them counterclockwise.
It's worth the effort. Recommended."  (Gerry Pourwelle)