Re: [GENERAL] interesting PHP/MySQL thread - Mailing list pgsql-advocacy

From Bruce Momjian
Subject Re: [GENERAL] interesting PHP/MySQL thread
Date
Msg-id 200306231641.h5NGftj12393@candle.pha.pa.us
Whole thread Raw
In response to Re: [GENERAL] interesting PHP/MySQL thread  (Dennis Gearon <gearond@cvc.net>)
List pgsql-advocacy
Dennis Gearon wrote:
> Looks like there's some parts of that that would make a good todo.
>
> nolan@celery.tssi.com wrote:
>
> >>>Personally, if I want case insensitivity, I'll WRITE IT INTO THE CODE,
> >>>but I can see how some people might think that 'NOLAN', 'Nolan' and
> >>>'nolan' should be considered as the same data.
> >>
> >>Oh, you mean like "SELECT * FROM table WHERE field ~* 'nolan';"?
> >
> >
> > No, I mean as in "SELECT * FROM table WHERE field = 'nolan';"
> >
> > That will match values with any combination of upper and lower case
> > letters that fold to 'nolan':  'Nolan', 'NOLAN', etc.

We require ~* syntax for that, or upper()/lower().

> > Also, unlike PostgreSQL (at least in 7.3), if you define an index on
> > the column, mysql appears to use it for LIKE queries.
> >
> >    "SELECT * FROM table WHERE field LIKE 'nolan%';"
> >
> > is very fast in mysql but not in 7.3, and even non-anchored LIKE searches
> > in mysql appear to be using the index.
> >
> >    "SELECT * FROM table WHERE field LIKE '%nolan%';"
> >
> > executes considerably faster with an index on field than without one.

I would love to know how they can use an index for a non-anchored query,
i.e. what string are they indexing?

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-advocacy by date:

Previous
From: "Reuben D. Budiardja"
Date:
Subject: Re: [GENERAL] interesting PHP/MySQL thread
Next
From: Dennis Gearon
Date:
Subject: Re: [GENERAL] interesting PHP/MySQL thread