O que é um index em SQL? Você pode explicar ou fazer referência para entender claramente?
Onde devo usar um índice?
Um índice é usado para acelerar a pesquisa na base de dados. O MySQL tem uma boa documentação sobre o assunto (que também é relevante para outros servidores SQL): http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html
Um índice pode ser usado para encontrar eficientemente todas as linhas que correspondem a alguma coluna na sua consulta e depois percorrer apenas aquele subconjunto da tabela para encontrar correspondências exatas. Se você não't tem índices em qualquer coluna na cláusula WHERE
, o servidor SQL
tem que caminhar por a tabela inteira e verificar cada linha para ver se ela corresponde, o que pode ser uma operação lenta em tabelas grandes.
O índice também pode ser um índice UNIQUE
, o que significa que você não pode ter valores duplicados naquela coluna, ou uma PRIMARY KEY
que em alguns mecanismos de armazenamento define onde no arquivo da base de dados o valor é armazenado.
No MySQL você pode utilizar EXPLAIN
na frente da sua declaração SELECT
para ver se a sua consulta fará uso de qualquer índice. Este é um bom começo para resolver problemas de desempenho. Leia mais aqui:
http://dev.mysql.com/doc/refman/5.0/en/explain.html
Um índice é usado para acelerar o desempenho das consultas. Ele faz isso reduzindo o número de páginas de dados da base de dados que devem ser visitadas/escaneadas.
No SQL Server, um índice cluído determina a ordem física dos dados em uma tabela. Só pode haver um índice agrupado por tabela (o índice agrupado é a tabela). Todos os outros índices em uma tabela são chamados de não agrupados.
Um [índice][1] é usado por várias razões diferentes. A principal razão é para acelerar a consulta para que você possa obter filas ou classificar filas mais rapidamente. Outra razão é para definir uma chave primária ou índice único que garantirá que nenhuma outra coluna tenha os mesmos valores.
[1]: http://en.wikipedia.org/wiki/Index_(base de dados)