Обсуждение: Searching in a string with index

Поиск
Список
Период
Сортировка

Searching in a string with index

От
"Alexander B."
Дата:
Hi,
When I search some words into a varchar column and this column has an index.
Does Postgres use index??

The search is done this way:

create table tb_gen_person (
  pes_nro_doc numeric(14) not null,
  pes_name varchar(150) not null,
  constraint pk_person PRIMARY KEY(pes_nro_doc)
);
create index ix_person_01 on tb_gen_person (pes_name);

select *
from tb_gen_person
where pes_name like '%albert%';

Not considering upper case, or tsearch2, this type of search use index
somehow?
I overhear that if the search has more than 5 characters, probably would
use index!! Is this true?

Thanks

Re: Searching in a string with index

От
"Igor Neyman"
Дата:
Index will not be used if your string has "wild card" (%) in the
beginning.
It should be used, if you change your query to:

select *
from tb_gen_person
where pes_name like 'albert%';

Igor

-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Alexander B.
Sent: Wednesday, July 25, 2007 9:18 AM
To: pgsql-admin@postgresql.org
Subject: [ADMIN] Searching in a string with index

Hi,
When I search some words into a varchar column and this column has an
index.
Does Postgres use index??

The search is done this way:

create table tb_gen_person (
  pes_nro_doc numeric(14) not null,
  pes_name varchar(150) not null,
  constraint pk_person PRIMARY KEY(pes_nro_doc) ); create index
ix_person_01 on tb_gen_person (pes_name);

select *
from tb_gen_person
where pes_name like '%albert%';

Not considering upper case, or tsearch2, this type of search use index
somehow?
I overhear that if the search has more than 5 characters, probably would
use index!! Is this true?

Thanks

---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at

                http://www.postgresql.org/about/donate