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