Banco de Dados - Índice
Para não reescrever a roda =D
Antes de tudo leia:
http://pt.wikipedia.org/wiki/Banco_de_dados_relacional
Para quem não quer acessar o Wikipedia:
Índices
Um índice não é uma característica do Modelo Relacional, mas sim uma estratégia de otimização de consulta para implementações desse modelo. Isso acontece porque o Modelo Relacional é um modelo teórico, porém quando transformado em uma implementação as suas operações (tanto da álgebra quanto do cálculo) exigem um tempo de busca. Se os dados estiverem ordenados de uma forma ideal, esse tempo de busca pode ser bastante reduzido.
Os índices funcionam então como catálogos organizados de forma a beneficiar certo tipo de consulta. É possível imaginar que uma tabela seria associada a quantidade máxima de índices, porém isso traria muitos gasto de inserção e alteração. Por isso, em uma implantação de um banco de dados, são escolhidos os indíces mais adequados. Normalmente a chave primária é um índice.
O limitador é imposto exclusivamente pela ferramenta de software utilizada. Sendo assim, para a recuperação dos dados é necessário a existência de mecanismos que facilitem a consulta, proporcionando uma perfomance aceitável para a mesma. Para isso, os sistemas de bancos de dados relacionais criam índices das tabelas, sendo que esses índices são atualizados constantemente.
Caso o índice se corrompa por algum motivo, é possível que pesquisas possam retornar resultados não desejados ou que inserções de chaves duplicadas aconteçam. Nesse caso o banco de dados será corrompido também. Os sistemas de bancos (bases) de dados possuem mecanismos de evitar que esses eventos ocorram como também possibilitam a recuperação dos índices e consistência da tabela caso eles ocorram.
—
Porque usar índice?
Para que utilizar índice em um campo de uma tabela?
Vou responder com outra pergunta fazendo uma analogia a um livro:
Como você encontraria algum assunto em um livro sem olhar no índice? Com certeza teria que passar folha por folha até encontrar, e da mesma maneira ocorre com Bancos de Dados. Bom acho que não preciso mais dizer nada sobre o porque utiliza-los.
Ahh! Preciso sim… Fatos reais, uma empresa precisava de 12 horas para ter um relatório a algum tempo, quando foram implementados índices aos bancos de dados, eles reestruturaram o banco de dados adicionando índices… quando a consulta foi executada novamente eles tiveram uma surpresa, o mesmo relatório de 12 horas foi executado em menos de 1 segundo. (Fonte: Professor Mendes =D)
Como funciona?
Quando é criado um índice para determinado(s) campo(s) em uma tabela, é gerado uma nova tabela com todos os registros do(s) campo(s) a qual está criando de forma ordenada, com o endereço do registro na tabela mãe, ou aquela aquela com todos os registros e não somente os índices e endereçamento. Resumindo, fazendo novamente uma analogia a um livro, ele coloca o número da página que determinado conteúdo se encontra.
Fonte: Aula de Banco de Dados da Facul =D
May 30th, 2007 at 9:38 am
Fala Andrey… Parece que estamos aprendendo a mesma coisa na faculdade =) A criação de indices é muito important para a otimozação do banco. forte abraço.
May 31st, 2007 at 3:28 am
Fala Andrey, tô voltando com meu blog e linkei o seu lá! Veja aí:
http://xkurt.blogspot.com
May 31st, 2007 at 5:30 am
Ae Fill! =D
Índices são as CHAVES da performance… (chave com duplo sentido). =D
Até mais!