Diferença entre Cluster e Non Cluster Index

Anonim

Índice Cluster vs Non Cluster

Os índices são muito importantes em qualquer banco de dados. Eles são usados ​​para melhorar o desempenho de recuperar dados de tabelas. Eles são logicamente e fisicamente independentes dos dados nas tabelas associadas. Portanto, os índices podem ser largados, recriados e reconstruídos sem afetar os dados das tabelas de base. O servidor Oracle pode manter seus índices automaticamente sem qualquer envolvimento de um DBA, quando as tabelas relacionadas são inseridas, atualizadas e excluídas. Existem vários tipos de índice. Aqui estão alguns deles.

1. Índices de árvores B

2. Índices de bitmap

3. Índices baseados em funções

4. Índices inversos

5. Índices de agrupamento de árvores B

O que é um índice sem cluster?

Dos tipos de índice acima, os seguintes são índices não agrupados.

• Índice da árvore B

• Índice de mapa de bits

• Índice baseado em função

• Índices reversos

Índices de árvores B são o tipo de banco de dados de índice mais utilizado. Se o comando CREATE INDEX for emitido no banco de dados, sem especificar um tipo, o servidor Oracle cria um índice b-tree. Quando um índice b-tree é criado em uma coluna específica, o servidor oracle armazena os valores da coluna e mantém uma referência à linha real da tabela.

Os índices de bitmap são criados quando os dados da coluna não são muito seletivos. Isso significa que os dados da coluna têm uma baixa cardinalidade. Estes são especialmente concebidos para armazéns de dados, e não é bom usar índices de bitmap em tabelas altamente atualizáveis ​​ou transacionais.

Os índices funcionais provêm do Oracle 8i. Aqui, uma função é usada na coluna indexada. Portanto, em um índice funcional, os dados da coluna não são classificados de maneira normal. Ele classifica os valores das colunas após a aplicação da função. Estes são muito úteis quando o WHERE close da consulta selecionada é usada como função.

Os índices de chave reversa são um tipo de índice muito interessante. Vamos assumir que uma coluna contém muitos dados de string únicos como 'cityA', 'cityB', 'cityC' … etc. Todos os valores têm um padrão. Os primeiros quatro caracteres são os mesmos e as próximas peças são alteradas. Então, quando o índice de chave REVERSE é criado nesta coluna, a Oracle irá reverter a string e restaurá-la em um índice b-tree.

Os tipos de índice acima mencionados são índices NÃO CLUSTERADOS. Isso significa que os dados indexados são armazenados fora da tabela e uma referência ordenada para a tabela é mantida.

O que é um índice em cluster?

Os índices agrupados são um tipo especial de índices. Ele armazena dados de acordo com a maneira de armazenar dados de tabela fisicamente. Portanto, não pode haver muitos índices agrupados para uma tabela. Uma tabela pode ter apenas um índice agrupado.

Qual a diferença entre índices agrupados e sem clusters?

1. A tabela pode ter apenas um índice agrupado, mas pode haver até 249 índices não agrupados em uma tabela.

2. O índice agrupado é criado automaticamente quando uma chave primária é criada, mas um índice não agrupado é criado quando uma chave exclusiva é criada.

3. A ordem lógica do índice agrupado coincide com a ordem física dos dados da tabela, mas em índices não agrupados, não.