Re: NOT LIKE much faster than LIKE? - Mailing list pgsql-performance

From Andrea Arcangeli
Subject Re: NOT LIKE much faster than LIKE?
Date
Msg-id 20060111203947.GL15897@opteron.random
Whole thread Raw
In response to Re: NOT LIKE much faster than LIKE?  ("Jim C. Nasby" <jnasby@pervasive.com>)
Responses Re: NOT LIKE much faster than LIKE?  (Andrea Arcangeli <andrea@cpushare.com>)
Re: NOT LIKE much faster than LIKE?  ("Jim C. Nasby" <jnasby@pervasive.com>)
List pgsql-performance
On Wed, Jan 11, 2006 at 12:40:32PM -0600, Jim C. Nasby wrote:
> On Tue, Jan 10, 2006 at 02:44:47AM +0100, Andrea Arcangeli wrote:
> > "cooperative" runs "WHERE kernel_version NOT LIKE '%% PREEMPT %%'", while
> > "preempt" runs "WHERE kernel_version LIKE '%% PREEMPT %%'. The only difference
>
> One thing you could do is change the like to:
>
> WHERE position(' PREEMPT ' in kernel_version) != 0

That alone fixed it, with this I don't even need the index (yet). Thanks
a lot.

> And then create a functional index on that:
>
> CREATE INDEX indexname ON tablename ( position(' PREEMPT ' in kernel_version) );

The index only helps the above query with = 0 and not the one with != 0,
but it seems not needed in practice.

pgsql-performance by date:

Previous
From: "Jim C. Nasby"
Date:
Subject: Re: Slow query with joins
Next
From: Andrea Arcangeli
Date:
Subject: Re: NOT LIKE much faster than LIKE?