Banco de Dados - Indexação
Ao desenvolver uma aplicação com acesso a um banco de dados, além dos pontos básicos que temos que ter em mente ao criar seu código, formulários, módulos, etc. Deve-se focar em fatores relacionados à base de dados que afetam o desempenho de sua aplicação. Um desses fatores é a Indexação.
Na Indexação, o uso de índices pode afetar dramaticamente a velocidade das aplicações para banco de dados. Indexar uma tabela de dados acelera o acesso aos dados dessa Tabela, pois estaremos fornecendo ponteiros ligados diretamente as Tabelas para pesquisar os dados sem ter que ler a Tabela inteira.
A Indexação usa o conceito de Índices que são Estrutura de dados que recebem como entrada uma propriedade de registro (por exemplo, um valor de um ou mais campos) e encontra os registros com essa propriedade rapidamente. Índices são, portanto, Estruturas de Dados auxiliares cujo único propósito é tornar mais rápido o acesso a registros baseado em certos campos, chamados Campos de Indexação.
Normalmente a Indexação ocorre através da criação de uma Tabela auxiliar que conterá o índice. Um arquivo de índices consiste de registros com 2 campos (a chave de busca e o ponteiro).
As principais vantagens da Indexação sobre o Acesso Sequencial são ganho de desempenho quando se deseja acessar linhas aleatoriamente ou acessar um campo indexado e menos Entrada/Saída, arquivo de índice menor que o arquivo de dados.
Porém as desvantagens são: Criação de um overhead tanto nas inclusões quanto nas exclusões, podendo ainda afetar as atualizações dependendo do campo indexado e, a Indexação ocupa mais espaço em disco.
Os principais tipos de Estruturas de Índices (formas de se organizar as chaves) são:
Índice primário - baseado na chave de ordenação;
Índice de Agrupamento (Clustering) – baseado no campo de ordenação não chave de um arquivo.
Índice Secundário – baseado em qualquer campo não ordenado de um arquivo.
Índices de um