Explicação detalhada e análise de princípios do índice MySQL

Uso detalhado do índice MySQL, análise de princípios

[Aviso prévio]
artigo de autor: Zhang Yaofeng em conjunto com a sua própria experiência na produção de acabamento, formando fácil de entender artigo
! Escrita não é fácil, reproduzido por favor especificar, obrigado
Caso Código de Dados Big Endereço: https://github.com/Mydreamandreality / sparkResearch


No mecanismo innodb, há um total de quatro tipos de índice, dois métodos de índice, falo principalmente sobre a escolha do índice na produção, a escolha da estrutura de dados

Taxa de acerto do índice, plano de execução do SQL pode ver meu artigo anterior

Tipo de índice:

  • 1. Índice normal
  • 2. Índice único
  • 3. Índice de Texto Completo
  • 4. índice espacial ESPACIAL

Método de índice:

  • 1. O método do índice btree
  • 2. Método do índice hash

Tipos de índice detalhados:

  • 1. Primeiro, o tipo de índice Normal é o tipo de índice mais comumente usado e também é o tipo de índice mais básico. Não possui restrições. Você pode definir Normal para um campo ou fazer uma indexação conjunta. Ao realizar uma consulta de condição única, consulta de várias condições ou outras operações de junção esquerda, o otimizador MySQL usará automaticamente esse tipo de índice para otimizar a velocidade da consulta; se quisermos saber se esse índice é eficaz ou não, podemos usar o explaincomando Vamos verificar o plano de execução do SQL. Para uma explicação detalhada do plano de execução do SQL, consulte o meu blog anterior.
  • 2. Único, como o nome indica, é um índice exclusivo. O índice exclusivo é adicionar uma restrição exclusiva com base no índice comum. Testei-o em dados de um milhão de níveis e não há muita diferença de desempenho em comparação com Normal. O cenário de aplicação desse índice é muito bom. Muitos, por exemplo, seus dados têm um campo que precisa ser indexado, e o valor desse campo deve ser exclusivo; usar um índice exclusivo é uma escolha melhor
  • 3. A indexação de texto completo faz sentido.De um modo geral, todos nós precisamos do Elasticsearch. A indexação de texto completo no MySQL não é muito usada, mas a unidade básica de indexação de texto completo é definitivamente uma palavra. O tokenizador do MySQL não é Saiba se é tão poderoso quanto es.Em resumo, o cenário de aplicação desse índice é o texto grande armazenado em um determinado campo, você pode usar o índice de Texto Completo
  • 4. Índice espacial ESPACIAL, para ser honesto, isso nunca foi usado, porque esse índice não pode ser usado no mecanismo innodb, ele precisa ser usado no campo de tipo de dados espaciais no mecanismo MYISAM. Existem 4 tipos de dados espaciais no MYSQL, que são GEOMETRIA, POINT, LINESTRING, POLYGON, MYSQL usam palavras-chave SPATIAL para expandir, para que possam ser usadas para criar um tipo de sintaxe de índice regular para criar um índice espacial, criar uma coluna de índice espacial que deve ser declarada como NOT NULL

Método de índice detalhado:

Método de índice Este MySQL suporta dois

  • 1. BTREE é uma árvore B +, que deve ser a mais usada
  • 2. Hash é a estrutura de dados de K e V. Esse tipo de pesquisa de intervalo e pesquisa de nó não suporta muito bem.

Qual é o índice?

Você já pensou sobre qual é o índice? Por que a eficiência da consulta se torna tão alta após adicionar o índice razoavelmente

De fato, para ser franco, o índice é uma estrutura de dados e seu papel é otimizar nossa consulta, assim como o índice implementado pela árvore B + no MySQL. A árvore B + é uma estrutura de dados. Quando você não adiciona um índice, consulte um dado. Você precisa varrer a tabela inteira e, em seguida, fazer uma varredura completa da tabela antes de combinar os dados.Esta é uma grande quantidade de dados? O índice é equivalente à tabela de seqüências do dicionário. Se você deseja verificar determinados dados, pode encontrar k diretamente na tabela de sequências.A melhoria da eficiência é muito alta.

Então, por que recomendamos o uso da estrutura de dados da árvore B +, índice de hash e árvore B, não é possível equilibrar completamente a árvore binária?

Antes de tudo, vamos falar sobre índices de hash. Esse tipo de velocidade de pesquisa de índice é rápido, mas é desconfortável porque não suporta a pesquisa por intervalo, como maior ou igual a isso, você pensa, como o kv suporta esse tipo de consulta, por isso raramente é usado em geral Índice de hash

Então b-tree, na verdade, basta olhar para o nome. Há uma diferença grosseira entre b-tree e b + tree, não apenas múltiplos +; de fato, os nós não-folhas b-tree são redundantes em nós de folha e existem ponteiros entre os nós de folha de b + tree. Encontrar o que é maior ou menor do que será particularmente rápido é uma solução de espaço para o tempo

A árvore binária balanceada suporta a pesquisa por intervalo, por que não usá-la, porque número b + (número b também pode ser) um nó pode armazenar vários elementos, o que causa isso? Pense abstratamente: temos duas árvores: como a árvore b + armazena vários elementos, é uma árvore que é mais baixa que a árvore binária, portanto, a pesquisa de elementos deve ser mais rápida, reduzindo certas operações io

. . . Espere, espere, o índice pode dizer muitos pontos, apenas saiba um pouco, apenas vá mais fundo quando estiver livre

Nota de uso do índice

  • 1. O índice terá efeito óbvio quando a quantidade de dados for grande.Se a quantidade de dados no sistema não for grande, não há necessidade de gerar um índice, desperdiçando espaço em disco
  • 2. Embora o índice aumente a velocidade da consulta, ele reduzirá a velocidade da atualização
  • 3. Ouvi algumas idéias perigosas. . Eu não sei se o índice é eficaz, de qualquer maneira, adicionei índices a todos os campos. . . Isso é muito assustador, a indexação ocupa espaço em disco no arquivo de índice, você pode criar o índice normalmente, tudo bem, você não pode usar o índice em excesso
  • 4. Escolha o índice apropriado de acordo com o cenário de negócios
Publicado 59 artigos originais · Gosto 364 · Visitantes com mais de 100.000

Acho que você gosta

Origin blog.csdn.net/youbitch1/article/details/105431071
Recomendado
Clasificación