Tengo una tabla así:

CREATE TABLE personas
(
  codigo numeric(8) NOT NULL,
  apellido1 text,
  apellido2 text,
  nombre1 text,
  nombre2 text,
  CONSTRAINT padron_pkey PRIMARY KEY (dui)
);

tiene casi 4 millones de registros, ahora bien, tengo que realizar consultas por nombres, entonces pregunto como creo el o los indices para tener mejor performance ... tener un solo indice por todas las columnas text o un indice por cada columna ?¿?¿

Si las consultas que hare son de este tipo:
select * from personas where apellido1 ilike '%JUAN%' and apellido ilike '%RAMIREZ%'

Cual de estos indices es Mejor,

1-
CREATE INDEX dui_idx
ON personas
  USING btree
  (apellido1, apellido2, nombre1, nombre2, nombre3);

2-
CREATE INDEX dui_idx1
ON personas
  USING btree
  (apellido1);

CREATE INDEX dui_idx2
ON personas
  USING btree
  (apellido2);
bla bla bla....



--
Cordialmente,
Juan Ramírez Miranda
El Salvador
--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
              http://archives.postgresql.org/pgsql-es-ayuda

Responder a