O que é um índice?
Um índice é uma chave construída a partir de uma ou mais colunas no banco de dados que acelera a busca de linhas da tabela ou exibição. Essa chave ajuda um banco de dados como Oracle, SQL Server, MySQL, etc. a encontrar a linha associada aos valores-chave rapidamente.
Dois tipos de índices são:
- Índice agrupado
- Índice não agrupado
Neste tutorial , você aprenderá:
- O que é um índice?
- O que é um índice agrupado?
- O que é índice não agrupado?
- Características do índice agrupado
- Características dos índices não agrupados
- Um exemplo de índice agrupado
- Um exemplo de índice não agrupado índice agrupado
- Diferenças entre índice agrupado e índice não agrupado
- Vantagens do índice agrupado
- Vantagens do índice não agrupado
- Desvantagens do índice agrupado Índice
- Desvantagens do índice não agrupado
O que é um índice agrupado?
Índice agrupado é 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 agrupado 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 único índice clusterizado para cada tabela. Em um RDBMS, geralmente, a chave primária permite que você crie 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. O índice contém ponteiros para a localização desses dados. Uma única tabela pode ter muitos índices não agrupados, já que um índice no índice não agrupado é armazenado em locais diferentes.
Por exemplo, um livro pode ter mais de um índice, um no início que exibe o conteúdo de uma unidade de livro, enquanto o segundo índice mostra o índice de termos em ordem alfabética.
Um índice não agrupado é definido no campo não ordenado da tabela. Este 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 agrupado permite adicionar uma chave exclusiva para uma tabela.
DIFERENÇA CHAVE
- Índice de cluster é um tipo de índice que classifica as linhas de dados na tabela em seus valores chave, enquanto o índice não agrupado armazena os dados em um local e índices em outro local.
- O índice clusterizado armazena páginas de dados nos nós folha do índice, enquanto o método de índice não clusterizado nunca armazena páginas de dados nos nós folha do índice.
- Índice de cluster não requer espaço em disco adicional, enquanto o índice não clusterizado requer espaço em disco adicional.
- O índice cluster oferece acesso mais rápido aos dados, por outro lado, o índice não clusterizado é mais lento.
Característica do índice agrupado
- Armazenamento de dados padrão e classificado
- Use apenas uma ou mais colunas para um índice
- Ajuda você a armazenar dados e índice juntos
- fragmentação
- operações
- varredura de índice agrupado e busca de índice
- pesquisa de chave
Características de índices não agrupados
- Armazene apenas valores-chave
- Ponteiros para linhas de índice Heap / agrupado
- Permite dados secundários acesso
- Ponte para os dados
- Operações de varredura de índice e busca de índice
- Você pode criar um índice clusterizado para uma tabela ou exibição
- Cada linha de índice no índice não clusterizado armazena o valor da chave não clusterizado e um localizador de linha
Um exemplo de um índice clusterizado
No exemplo abaixo, SalesOrderDetailID é o índice clusterizado. Consulta de amostra para recuperar dados
SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6
Um exemplo de índice não agrupado
No exemplo a seguir, um índice não agrupado é criado em OrderQty e ProductID da seguinte forma
CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)
A consulta a seguir será recuperada mais rapidamente em comparação com o índice agrupado.
SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714
Diferenças entre agrupados Índice e índice não agrupado
Parâmetros | Clusterizados | Não agrupados |
---|---|---|
Use para | Você pode classificar os registros e armazenar o índice clusterizado fisicamente na memória de acordo com o pedido . | Um índice não agrupado 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 agrupado é bastante grande. | O tamanho do índice não agrupado é pequeno em comparação com o índice agrupado. |
Acesso aos dados | Mais rápido | Mais lento em comparação com o índice agrupado |
Espaço em disco adicional | Não necessário | Necessário para armazenar o índice separadamente |
Tipo de chave | Por padrão, as chaves primárias da tabela são um índice agrupado. | Pode ser usado com restrição exclusiva na tabela que atua como uma chave composta. |
Característica principal | Um índice agrupado pode melhorar o desempenho da recuperação de dados. | Deve ser criado nas colunas que são usadas nas junções. |
Vantagens do índice clusterizado
As vantagens / vantagens do índice clusterizado são:
- Índices agrupados 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 nos dados para que você pode continuar lendo sequencialmente a partir daí.
- O método de índice agrupado 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ágina e maximizar os acessos do cache.
Vantagens do índice não agrupado
As vantagens de usar um índice não agrupado são:
- Um índice não agrupado ajuda você para recuperar dados rapidamente da tabela do banco de dados.
- Ajuda a evitar o custo indireto associado ao índice agrupado
- Uma tabela pode ter vários índices não agrupados no RDBMS. Portanto, ele pode ser usado para criar mais de um índice.
Desvantagens do índice agrupado
Aqui, estão os contras / desvantagens de usar o índice agrupado:
- Muitas inserções em não sequencial pedido
- Um índice agrupado cria muitas divisões de página constantes, que incluem página de dados, bem como páginas de índice.
- Trabalho extra para SQL para inserções, atualizações e exclusões.
- Um índice agrupado leva mais tempo para atualizar registros quando os campos no índice agrupado são alterados.
- Os nós folha contêm principalmente páginas de dados no índice agrupado.
Desvantagens do índice não agrupado
Aqui, estão os contras / desvantagens do uso de índice não agrupado: