Re: "like" and index

From: Michael Monnerie <michael(dot)monnerie(at)is(dot)it-management(dot)at>
To: pgsql-admin(at)postgresql(dot)org
Subject: Re: "like" and index
Date: 2009-02-25 11:41:40
Message-ID: 200902251241.40700@zmi.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Mittwoch 25 Februar 2009 Tony Liao wrote:
> hi all,
> I have a table table_A (id serial,prefix varchar),for example.
> now I want to get the id of "johnsmith"'s prefix match
> table_A.prefix,so I do select id from table_A where 'johnsmith' like
> prefix||'%'

SELECT id FROM table_A WHERE prefix LIKE 'johnsmith%';

> ,the table_A is very large so I would like to make
> index. create table_A_index on table_A(prefix)
> I try to explain analyze,but it doesn't work ,it use seq scan.

Because your SELECT was wrong.

> I try another index. drop index table_A_index; create
> table_A_index on table_A(prefix varchar_pattern_ops); it doesn't
> work,too.
> thanks
> ps:I have another table table_B would use table_B.prefix=
> table_A.prefix.so how can I create the index?

That's a foreign key, if I understand you correctly.

ALTER TABLE ONLY B
ADD CONSTRAINT B_prefix_fkey FOREIGN KEY (prefix) REFERENCES
A(prefix) ON UPDATE CASCADE ON DELETE CASCADE;

mfg zmi
--
// Michael Monnerie, Ing.BSc ----- http://it-management.at
// Tel: 0660 / 415 65 31 .network.your.ideas.
// PGP Key: "curl -s http://zmi.at/zmi.asc | gpg --import"
// Fingerprint: AC19 F9D5 36ED CD8A EF38 500E CE14 91F7 1C12 09B4
// Keyserver: wwwkeys.eu.pgp.net Key-ID: 1C1209B4

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Tony Liao 2009-02-25 11:48:08 Re: "like" and index
Previous Message Tony Liao 2009-02-25 10:59:27 "like" and index