Oi Izana,

Creio que você está se referindo ao agrupamento físico dos dados, seja da 
tabela, seja do índice.
Os bancos de dados variam bastante na forma como tratam estes casos, ora 
aplicando estes critérios ao índice, à tabela, aos dois ou a nenhum deles.

O que você citou como índice/tabela "PRIMARIO" deve ser o critério de 
ordenação dentro da tabela ou índice. Por exemplo, se o seu índice primário 
é
composto pelo campo NOME, então ao percorrer sequencialmente as páginas da 
sua tabela ou índice, notará que os registros ali contidos estão
ordenados por este campo. Evidentemente só é possível escolher um critério 
para chamar de "primário", enquanto que todos os outros índices
farão referência aos dados existentes na tabela, às vezes usando este 
critério de ordenação.

O PostgreSQL, por padrão, armazena os registros conforme sua conveniência, 
sem nenhum critério de ordenação definido. Já o SQL Server, por exemplo,
ordena por padrão todos os dados de uma tabela por sua chave primária. Cada 
abordagem tem suas vantagens e desvantagens.

A definição de quando a tabela/índice será ordenado ou não depende de banco 
para banco. No SQL Server é possível definir qual o critério de
ordenação criando o índice com a opção CLUSTERED, padrão para chaves 
primárias.
Já no PostgreSQL, existe o comando CLUSTER para a mesma finalidade, que 
sempre deve ser explicitado quando desejado. Importante salientar que no
PostgreSQL uma tabela com a opção CLUSTER só fica ordenada imediatamente 
após a sua reorganização ("recluster").

Manter os dados ordenados fisicamente dentro da tabela ajuda imensamente na 
otimização de consultas, pois pesquisas de faixas de valores feitas
pela chave de ordenação sempre trarão os registros agrupados em páginas 
subsequentes, poupando o servidor de ler a tabela inteira, o que pode ser
uma diferença de vida ou morte do sistema se estivermos falando de uma 
tabela com milhões de registros.

Atenciosamente,

Mozart Hasse

Date: Thu, 9 Jun 2011 09:37:52 -0400
From: izana souza torres <[email protected]>
Subject: [pgbr-geral]  - Dúvida sobre índice
To: Comunidade PostgreSQL Brasileira

Estava estudo dando um pouco a literatura e vir que existe alguma
categorias:

Primario -> Trabalha sobre um campo chave e sobre arquivos ORDENADOS

secundário > Trabalha sobre campo não chave ou NÃO e sobre arquivos
DESORDENADOS;

Minha pergunta é : o que seria arquivos ORDENADOS E DESORDENADO ?

segunda pergunta: Na prática como isso acontece:

tipo vou criar um índice e digo se ele é primario ou secundário ? 

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a