Search Postgresql Archives

Re: Wich hardware suits best for large full-text indexed databases

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I see that only table documentos has a unique index.  Is it really so
that none of the other tables has a key to uniquely identify a record?
Perhaps the others have a unique attribute but it was never declared
when forming the index?

I do not remember which version of PostgreSQL you are using, but there
is now a CLUSTER command.  Now, I am speaking with my experience in
other database systems, and so perhaps the PostgreSQL group may find it
necessary to correct me.  I have only recently began working with
PostgreSQL versions beyond 7.1.3 which had no cluster command (or at
least I was not aware of one).  In other database systems, a clustered
index is incredibly valuable.  In fact, a unique, clustered index is
always a silver bullet to marvelous performance.  Perhaps some of the
experts can give measurements as to the effectiveness of clustering in
PostgreSQL.  Here is the link for the cluster documentation:
http://www.postgresql.org/docs/current/static/sql-cluster.html

>From the description, clustering is expensive and your tables are large.
So it should be an infrequent operation.


> -----Original Message-----
> From: Diogo Biazus [mailto:diogo@ikono.com.br] 
> Sent: Wednesday, March 31, 2004 10:30 AM
> To: Dann Corbit
> Cc: pgsql-general@postgresql.org
> Subject: Re:  Wich hardware suits best for large 
> full-text indexed databases
> 
> 
> Dann Corbit wrote:
> 
> >Can we see the underlying tables also?
> >  
> >
> CREATE TABLE public.documentos
> (
>   coddocumento serial NOT NULL,
>   codfonte int4 NOT NULL,
>   codsecao int4,
>   codusuario int4,
>   codposicaopagina int4,
>   codinterno varchar(255),
>   nomedocumento text NOT NULL,
>   subtitulo text,
>   resumohumano text,
>   resumoautomatico text,
>   conteudo text,
>   datapublicacao date,
>   localorigem varchar(255),
>   horapublicacao time,
>   pagina varchar(5),
>   anoedicao varchar(5),
>   numeroedicao_old varchar(10),
>   nomeautor varchar(255),
>   datainsercao timestamp NOT NULL DEFAULT ('now'::text)::timestamp(6) 
> with time zone,
>   url text,
>   codtipoinsercao varchar(1) NOT NULL,
>   codbusca int4,
>   codtipodocumento int4 NOT NULL,
>   codformato int4 NOT NULL,
>   analisado bool NOT NULL DEFAULT false,
>   numeroedicao varchar(120),
>   conteudo_stem_ix public.tsvector,
>   conteudo_ix public.tsvector,
>   numeroimagens int4 DEFAULT 0,
>   numeroacessos int4 DEFAULT 0,
>   codtarefa int8,
>   md5arquivo varchar(32),
>   CONSTRAINT documentos_pkey PRIMARY KEY (coddocumento),
>   CONSTRAINT arquivos_documentos_fk FOREIGN KEY (md5arquivo) 
> REFERENCES 
> public.arquivos (md5arquivo) ON UPDATE CASCADE ON DELETE CASCADE,
>   CONSTRAINT buscas_documentos FOREIGN KEY (codbusca) REFERENCES 
> public.buscas (codbusca) ON UPDATE CASCADE ON DELETE CASCADE,
>   CONSTRAINT fontes_documentos FOREIGN KEY (codfonte) REFERENCES 
> public.fontes (codfonte) ON UPDATE NO ACTION ON DELETE NO ACTION,
>   CONSTRAINT secoes_documentos FOREIGN KEY (codsecao) REFERENCES 
> public.secoes (codsecao) ON UPDATE NO ACTION ON DELETE NO ACTION,
>   CONSTRAINT tiposdocumento_documentos FOREIGN KEY (codtipodocumento) 
> REFERENCES public.tiposdocumento (codtipodocumento) ON UPDATE 
> CASCADE ON 
> DELETE NO ACTION,
>   CONSTRAINT tiposinsercao_documentos FOREIGN KEY (codtipoinsercao) 
> REFERENCES public.tiposinsercao (codtipoinsercao) ON UPDATE 
> NO ACTION ON 
> DELETE NO ACTION,
>   CONSTRAINT usuarios_documentos FOREIGN KEY (codusuario) REFERENCES 
> public.usuarios (codusuario) ON UPDATE NO ACTION ON DELETE NO ACTION
> ) WITH OIDS;
> 
> CREATE INDEX documentos_ajustaautor_ix
>   ON public.documentos
>   USING btree
>   (public.ajustaautor(nomeautor) text_ops);
> 
> CREATE INDEX documentos_ajustadata_ix
>   ON public.documentos
>   USING btree
>   (public.ajustadata(datapublicacao) date_ops);
> 
> CREATE INDEX documentos_ajustahora_ix
>   ON public.documentos
>   USING btree
>   (public.ajustahora(horapublicacao) time_ops);
> 
> CREATE INDEX documentos_codtipodocumento_ix
>   ON public.documentos
>   USING btree
>   (codtipodocumento);
> 
> CREATE UNIQUE INDEX documentos_codfonte_codinterno_ix
>   ON public.documentos
>   USING btree
>   (codinterno, codfonte);
> 
> CREATE INDEX documentos_codfonte_ix
>   ON public.documentos
>   USING btree
>   (codfonte);
> 
> CREATE INDEX documentos_codformato_ix
>   ON public.documentos
>   USING btree
>   (codformato);
> 
> CREATE INDEX documentos_conteudo_stem_ix_ix
>   ON public.documentos
>   USING gist
>   (conteudo_stem_ix);
> 
> CREATE INDEX documentos_conteudo_ix_ix
>   ON public.documentos
>   USING gist
>   (conteudo_ix);
> 
> 
> 
> CREATE TABLE public.fontes
> (
>   codfonte serial NOT NULL,
>   codtipofonte int4 NOT NULL,
>   nomefonte varchar(50) NOT NULL,
>   ativo bool NOT NULL DEFAULT true,
>   periodicidade varchar(1),
>   codagente int4,
>   CONSTRAINT fontes_pkey PRIMARY KEY (codfonte),
>   CONSTRAINT tiposfonte_fontes FOREIGN KEY (codtipofonte) REFERENCES 
> public.tiposfonte (codtipofonte) ON UPDATE NO ACTION ON 
> DELETE NO ACTION
> ) WITH OIDS;
> 
> CREATE INDEX fontes_codtipofonte_ix
>   ON public.fontes
>   USING btree
>   (codtipofonte);
> 
> CREATE INDEX fontes_nomefonte_ix
>   ON public.fontes
>   USING btree
>   (nomefonte);
> 
> 
> 
> CREATE TABLE public.fontes_gruposusuario
> (
>   codfonte int4 NOT NULL,
>   codgrupousuario int4 NOT NULL,
>   CONSTRAINT fontes_gruposusuario_pkey PRIMARY KEY (codfonte, 
> codgrupousuario),
>   CONSTRAINT fontes_gruposusuario_codfonte_fk FOREIGN KEY (codfonte) 
> REFERENCES public.fontes (codfonte) ON UPDATE CASCADE ON 
> DELETE CASCADE,
>   CONSTRAINT fontes_gruposusuario_codgrupousuario_fk FOREIGN KEY 
> (codgrupousuario) REFERENCES public.gruposusuario 
> (codgrupousuario) ON 
> UPDATE CASCADE ON DELETE CASCADE
> ) WITH OIDS;
> 
> CREATE INDEX fontes_gruposusuario_codfonte_ix
>   ON public.fontes_gruposusuario
>   USING btree
>   (codfonte);
> 
> CREATE INDEX fontes_gruposusuario_codgrupousuario_ix
>   ON public.fontes_gruposusuario
>   USING btree
>   (codgrupousuario);
> 
> CREATE TABLE public.tiposdocumento_gruposusuario
> (
>   codtipodocumento int4 NOT NULL,
>   codgrupousuario int4 NOT NULL,
>   CONSTRAINT tiposdocumento_gruposusuario_pkey PRIMARY KEY 
> (codtipodocumento, codgrupousuario),
>   CONSTRAINT tiposdocumento_gruposusuario_codtipodocumento_fk FOREIGN 
> KEY (codtipodocumento) REFERENCES public.tiposdocumento 
> (codtipodocumento) ON UPDATE CASCADE ON DELETE CASCADE,
>   CONSTRAINT tiposdocumentos_gruposusuario_codgrupousuario_fk FOREIGN 
> KEY (codgrupousuario) REFERENCES public.gruposusuario 
> (codgrupousuario) 
> ON UPDATE CASCADE ON DELETE CASCADE
> ) WITHOUT OIDS;
> 
> 
> CREATE INDEX tiposdocumento_gruposusuario_codgrupousuario_ix
>   ON public.tiposdocumento_gruposusuario
>   USING btree
>   (codgrupousuario);
> 
> CREATE INDEX tiposdocumento_gruposusuario_codtipodocumento_ix
>   ON public.tiposdocumento_gruposusuario
>   USING btree
>   (codtipodocumento);
> 
> 
> 
> -- 
> Diogo Biazus
> diogo@ikono.com.br
> http://www.ikono.com.br
> 
> 

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux