Diferença entre Clustered e índice não agrupado
Principal diferença entre ClusterÍndice ed e não agrupado
- Um índice de cluster é um tipo de índice que classifica as linhas de dados na tabela de acordo com seus valores-chave, enquanto o índice não clusterizado armazena os dados em um local e os índices em outro local.
- ClusterO índice ed armazena páginas de dados nos nós folha do índice, enquanto o método de índice não agrupado nunca armazena páginas de dados nos nós folha do índice.
- O índice de cluster não requer espaço em disco adicional, enquanto o índice não clusterizado requer espaço em disco adicional.
- Cluster O índice oferece acesso mais rápido aos dados, por outro lado, o índice não agrupado é mais lento.
O que é um índice?
Um índice é uma chave criada a partir de uma ou mais colunas no banco de dados que acelera a busca de linhas da tabela ou visualização. Esta chave ajuda um banco de dados como Oracle, Servidor SQL, MySQL, etc. para encontrar rapidamente a linha associada aos valores-chave.
Dois tipos de índices são:
- ClusterÍndice editado
- Não-ClusterÍndice editado
O que é uma Clusteríndice editado?
Cluster index é um tipo de índice que classifica as linhas de dados na tabela em seus valores-chave. No Banco de Dados, há apenas um índice clusterizado por tabela.
Um índice clusterizado define a ordem em que os dados são armazenados na tabela, que pode ser classificado de apenas uma maneira. Portanto, pode haver apenas um índice clusterizado para cada tabela. Em um RDBMS, normalmente, a chave primária permite criar um índice clusterizado com base nessa coluna específica.
O que é índice não clusterizado?
Um índice não clusterizado armazena os dados em um local e os índices em outro local. O índice contém ponteiros para a localização desses dados. Uma única tabela pode ter muitos índices não clusterizados, pois um índice no índice não clusterizado é armazenado em locais diferentes.
Por exemplo, um livro pode ter mais de um índice, um no início que exibe o conteúdo de um livro por unidade, enquanto o segundo índice mostra o índice dos termos em ordem alfabética.
Um índice sem cluster é definido no campo de não ordenação da tabela. Esse tipo de método de indexação ajuda a melhorar o desempenho de consultas que usam chaves que não são atribuídas como chave primária. Um índice não clusterizado permite adicionar uma chave exclusiva para uma tabela.
Característica de ClusterÍndice editado
- Armazenamento de dados padrão e classificado
- Use apenas uma ou mais colunas para um índice
- Ajuda você a armazenar dados e indexar juntos
- Fragmentação
- Operações
- Clustervarredura de índice ed e busca de índice
- Pesquisa de chave
Características dos índices não agrupados
- Armazene apenas valores-chave
- Ponteiros para heap/Clusterlinhas de índice editadas
- Permite acesso a dados secundários
- Ponte para os dados
- Operações de Index Scan e Index Seek
- Você pode criar um índice não clusterizado para uma tabela ou visualização
- Cada linha de índice no índice não clusterizado armazena o valor da chave não clusterizada e um localizador de linha
ClusterÍndice ed vs. índice não agrupado em SQL: principais diferenças
parâmetros | Clustered | Não agrupado |
---|---|---|
use para | Você pode classificar os registros e armazenar o índice clusterizado fisicamente na memória conforme o pedido. | Um índice não clusterizado ajuda a criar uma ordem lógica para linhas de dados e usa ponteiros para arquivos de dados físicos. |
Método de armazenamento | Permite armazenar páginas de dados nos nós folha do índice. | Este método de indexação nunca armazena páginas de dados nos nós folha do índice. |
Tamanho | O tamanho do índice clusterizado é bastante grande. | O tamanho do índice não clusterizado é pequeno em comparação com o índice clusterizado. |
Acesso a dados | Mais rápido | Mais lento em comparação com o índice clusterizado |
Espaço adicional em disco | Não requerido | Necessário para armazenar o índice separadamente |
Tipo de chave | Por padrão, as chaves primárias da tabela são um ClusterÍndice editado. | Pode ser usado com restrição exclusiva na tabela que atua como uma chave composta. |
Característica principal | Um índice clusterizado pode melhorar o desempenho da recuperação de dados. | Deve ser criado em colunas que são usadas em junções. |
Um exemplo de índice clusterizado
No exemplo abaixo, SalesOrderDetailID é o índice clusterizado. Consulta de exemplo para recuperar dados
SELECT CarrierTrackingNumber, UnitPrice FROM SalesData WHERE SalesOrderDetailID = 6
Um exemplo de índice não clusterizado
No exemplo abaixo, um índice não clusterizado é criado em OrderQty e ProductID da seguinte forma
CREATE INDEX myIndex ON SalesData (ProductID, OrderQty)
A consulta a seguir será recuperada mais rapidamente em comparação com o índice clusterizado.
SELECT Product ID, OrderQty FROM SalesData WHERE ProductID = 714
Vantagens de ClusterÍndice editado
Os prós/benefícios do índice clusterizado são:
- Clusteríndices ed são uma opção ideal para intervalo ou agrupamento com consultas do tipo máximo, mínimo e contagem
- Nesse tipo de índice, uma pesquisa pode ir direto para um ponto específico dos dados para que você possa continuar lendo sequencialmente a partir daí.
- ClusterO método de índice ed usa mecanismo de localização para localizar a entrada do índice no início de um intervalo.
- É um método eficaz para pesquisas de intervalo quando um intervalo de valores-chave de pesquisa é solicitado.
- Ajuda a minimizar as transferências de páginas e maximizar os acessos ao cache.
Vantagens do índice não clusterizado
As vantagens de usar índice não clusterizado são:
- Um índice sem cluster ajuda você a recuperar dados rapidamente da tabela do banco de dados.
- Ajuda você a evitar os custos indiretos associados ao índice clusterizado
- Uma tabela pode ter vários índices não clusterizados em RDBMS. Portanto, pode ser usado para criar mais de um índice.
Desvantagens de ClusterÍndice editado
Aqui estão os contras/desvantagens do uso do índice clusterizado:
- Muitas inserções em ordem não sequencial
- Um índice clusterizado cria muitas divisões de páginas constantes, que incluem páginas de dados e também páginas de índice.
- Trabalho extra para SQL para inserções, atualizações e exclusões.
- Um índice clusterizado leva mais tempo para atualizar registros quando os campos do índice clusterizado são alterados.
- Os nós folha contêm principalmente páginas de dados no índice clusterizado.
Desvantagens do índice não clusterizado
Aqui estão os contras/desvantagens do uso de índice não clusterizado:
- Um índice não clusterizado ajuda a armazenar dados em uma ordem lógica, mas não permite classificar fisicamente as linhas de dados.
- O processo de pesquisa em índices não clusterizados torna-se caro.
- Cada vez que a chave de cluster é atualizada, uma atualização correspondente é necessária no índice não clusterizado, pois ele armazena a chave de cluster.