O que é um índice em SQL?

o que é um índice em SQL? Pode explicar ou referir-se a entender claramente?

onde devo usar um índice?

 319
Author: Dorian, 2010-06-02

11 answers

Um índice é usado para acelerar a pesquisa na base de dados. MySQL tem alguma boa documentação sobre o assunto (que é relevante para outros servidores SQL também): http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

Um índice pode ser usado para encontrar eficientemente todas as linhas correspondentes a alguma coluna na sua consulta e, em seguida, percorrer apenas esse subconjunto da tabela para encontrar as correspondências exactas. Se não tiver índices em nenhuma coluna da cláusula WHERE, o servidor SQL tem de percorrer toda a tabela e verificar todas as linhas para ver se corresponde, o que pode ser uma operação lenta em mesas grandes.

O índice também pode ser um índice UNIQUE, o que significa que você não pode ter valores duplicados nessa coluna, ou um PRIMARY KEY que em alguns motores de armazenamento define onde no arquivo de banco de dados o valor é armazenado.

No MySQL você pode usar 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 resolução de problemas de desempenho. Leia mais aqui: http://dev.mysql.com/doc/refman/5.0/en/explain.html

 277
Author: Emil Vikström, 2018-04-05 06:00:44
Um índice agrupado é como o conteúdo de uma lista telefónica. Podes abrir o livro em Hilditch, David e encontrar toda a informação para todos os Hilditch ao lado um do outro. Aqui as chaves para o índice agrupado são (lastname, nome próprio).

Isto torna os índices agrupados grandes para a obtenção de muitos dados com base em consultas com base no intervalo, uma vez que todos os dados estão localizados ao lado um do outro.

Uma vez que o índice agrupado está realmente relacionado com a forma como os dados são armazenados, há apenas um deles possível por tabela (embora você possa copiar para simular vários índices agrupados).

Um índice não agrupado é diferente na medida em que você pode ter muitos deles e eles então apontam para os dados no índice agrupado. Você poderia ter, por exemplo, um índice não agrupado na parte de trás de uma lista telefónica que é riscada (cidade, Endereço)

Imaginem se tivessem de procurar na lista telefónica por todas as pessoas que vivem em Londres, com apenas o índice agrupado, tem de procurar em todos os itens da lista telefónica, uma vez que a chave do índice agrupado está ligada (lastname, firstname) e, como resultado, as pessoas que vivem em Londres estão espalhadas aleatoriamente ao longo do Índice.

Se você tem um índice não agrupado em (Cidade), então essas consultas podem ser realizadas muito mais rapidamente.

Espero que isso ajude!
 131
Author: Dave Hilditch, 2012-09-01 13:44:44

Uma analogia muito boa é pensar num índice de base de dados como um índice num livro. Se você tem um livro sobre os países e você está olhando para a Índia, então por que você percorrer todo o livro – que é o equivalente a uma mesa cheia de digitalização na terminologia de banco de dados – quando você pode apenas ir para o índice no final do livro, o que irá dizer-lhe o exato páginas onde você pode encontrar informações sobre a Índia. Da mesma forma, como um índice de livro contém um número de página, um índice de base de dados contém um aponte para a linha que contém o valor que está a procurar no seu SQL.

Mais Aqui

 112
Author: Arun Kumar M, 2014-05-18 17:42:38

É utilizado um índice para acelerar o desempenho das consultas. Ele faz isso reduzindo o número de páginas de dados de banco de dados que têm que ser visitados/digitalizados.

No servidor SQL, um índiceagrupado determina a ordem física dos dados numa tabela. Pode haver apenas um índice agrupado por tabela (o índice agrupado é a tabela). Todos os outros índices em uma tabela são denominados Não agrupados.

 72
Author: Mitch Wheat, 2013-09-15 00:50:29

Os índices são tudo sobre encontrar dados rapidamente. Os índices em um banco de dados são análogos aos índices que você encontra em um livro. Se um livro tem um índice, e eu peço que você encontre um capítulo nesse livro, você pode rapidamente encontrá-lo com a ajuda do Índice. Por outro lado, se o livro não tem Índice, você terá que gastar mais tempo, procurando o capítulo, olhando para cada página do início ao fim do livro. De forma semelhante, índices em um banco de dados, pode ajudar consultas para encontrar dados rapidamente. Se você é novo para os índices, os seguintes vídeos, podem ser muito úteis. Na verdade, aprendi muito com eles.

Índice Noções básicas
Cluster e Índices Não Clusterizados
exclusivas e Não-Exclusivas Índices
Vantagens e desvantagens dos índices

 36
Author: Suresh, 2012-09-25 12:39:29

O índice geral é um B-tree. Existem dois tipos de índices: cluster e não cluster.

O índice Clustered cria uma ordem física de linhas (pode ser apenas uma e, na maioria dos casos, é também uma chave primária - se criar uma chave primária na tabela, irá criar também um índice agrupado nesta tabela).

O índice não obstruído também é uma árvore binária, mas não cria uma ordem física de linhas. Assim, os nós de folhas do índice não-aglomerado contêm PK (se existe) ou índice de linha.

Os índices são usados para aumentar a velocidade da pesquisa. Porque a complexidade é de O (log n). Os índices são um tema muito grande e interessante. Eu posso dizer que criar índices em uma base de dados grande é algum tipo de arte às vezes.

 18
Author: Voice, 2017-03-29 18:45:41

INDEXES - para encontrar dados facilmente

UNIQUE INDEX - não são permitidos valores duplicados

Sintaxe para INDEX

CREATE INDEX INDEX_NAME ON TABLE_NAME(COLUMN);

Sintaxe para UNIQUE INDEX

CREATE UNIQUE INDEX INDEX_NAME ON TABLE_NAME(COLUMN);
 14
Author: RAGU, 2017-03-29 21:41:18

O índice é uma técnica de otimização de desempenho que acelera o processo de recuperação de dados. É uma estrutura de dados persistente que está associada a uma tabela (ou visão), a fim de aumentar o desempenho durante a recuperação dos dados dessa tabela (ou visão).

A pesquisa baseada no índice é aplicada mais particularmente quando as suas consultas incluem o filtro onde. Caso contrário, i. e., uma consulta SEM onde-filter seleciona dados inteiros e processo. A procura por toda a tabela sem índice é chamada Varredura de mesa.

Encontrará informação exacta para os índices Sql de forma clara e fiável: siga estes links:

    Para uma compreensão cocneptada: http://dotnetauthorities.blogspot.in/2013/12/Microsoft-SQL-Server-Training-Online-Learning-Classes-INDEX-Overview-and-Optimizations.html
  1. para uma compreensão eficaz: http://dotnetauthorities.blogspot.in/2013/12/Microsoft-SQL-Server-Training-Online-Learning-Classes-INDEX-Creation-Deletetion-Optimizations.html
 9
Author: nayeemDotNetAuthorities, 2014-01-01 15:17:49
Se você está usando o servidor SQL, um dos melhores recursos são seus próprios livros Online que vêm com a instalação! É o primeiro lugar a que me referiria para qualquer tópico relacionado com o servidor SQL. Se é prático, como devo fazer isto?"tipo de perguntas, então StackOverflow seria um lugar melhor para fazer. Além disso, não volto há algum tempo, mas ... sqlservercentral.com costumava ser um dos principais sites relacionados com o servidor SQL lá fora.
 5
Author: cloneofsnake, 2010-06-02 06:34:34

Um índice é utilizado por várias razões diferentes. A principal razão é acelerar o questionamento para que você possa obter linhas ou ordenar linhas mais rápido. Outra razão é definir uma chave primária ou índice único que garanta que nenhuma outra coluna tenha os mesmos valores.

 4
Author: Senseful, 2010-06-02 06:29:00

Primeiro precisamos entender como funciona a consulta normal (sem indexação). Ele basicamente atravessa cada linha uma por uma e quando ele encontra os dados que retorna. Consulte a seguinte imagem. (Esta imagem foi tirada deste vídeo .)

Without indexing Suponha que a consulta é para encontrar 50, terá que ler 49 registros como uma pesquisa linear.

Veja a seguinte imagem. (Esta imagem foi tirada deste vídeo )

enter image description here

Quando aplicamos a indexação, a consulta irá rapidamente descobrir os dados sem ler cada um deles apenas eliminando metade dos dados em cada travessia como uma busca binária. Os índices mysql são armazenados como B-tree onde todos os dados estão no nó folha.
 0
Author: Kravi, 2018-09-20 20:15:48