Ajuste do Mysql: compreensão aprofundada da estrutura de dados subjacente e algoritmo do índice Mysql

1. A natureza da indexação

Índices são estruturas de dados ordenadas que ajudam o MySQL a obter dados de forma eficiente. A estrutura de dados subjacente do índice Mysql usa árvore B+
Insira a descrição da imagem aqui

  • Um nó na árvore B+ é armazenado em uma página e o tamanho de uma página é de cerca de 16 KB
  • Nós não folha não armazenam dados, apenas índices (redundantes) e mais índices podem ser colocados
  • Os nós folha contêm todos os campos de índice
  • Os nós folha são conectados com ponteiros para melhorar o desempenho do acesso ao intervalo.
show global status like 'innodb_page_size';

Insira a descrição da imagem aqui

Correspondência entre tabelas e arquivos do banco de dados

Insira a descrição da imagem aqui

2. Implementação do índice

Implementação do índice do mecanismo de armazenamento MyISAM
Insira a descrição da imagem aqui

O índice é colocado no arquivo MYI, o arquivo MYD e o arquivo de índice MyISAM e o arquivo de dados são separados. (A chave primária do MyISam é um índice não clusterizado)

Implementação de índice do mecanismo de armazenamento InnoDB

  • O próprio arquivo de arquivo de dados da tabela (ibd) é um arquivo de estrutura de índice organizado de acordo com a árvore B+
  • Índice clusterizado - nós folha protegem registros de dados completos
  • Por que é recomendado que as tabelas InnoDB estabeleçam uma chave primária ( 由InnoDB下数据的存储情况就可以知道为什么要建立索引) e recomendem um índice de incremento automático inteiro ( 整型索引在排序和存储方面都有优势,自增索引在构建B+树时可以减少结点分裂操作的次数,提高B+树构建的效率)
  • Por que todos os nós folha da estrutura de chave não primária armazenam o valor da chave primária em vez dos próprios dados?
    Resposta: É para consistência de dados e economia de espaço de armazenamento.

Insira a descrição da imagem aqui

3. Índice conjunto (mais comumente usado na prática)

Estrutura do índice da uniãoInsira a descrição da imagem aqui

Como o índice conjunto subjacente é classificado?
Resposta: Ele será classificado na ordem em que o índice é criado. Se o primeiro campo puder ser classificado, os campos subsequentes não precisam ser considerados. Se houver vários dados com a mesma primeira coluna do índice, os dados serão ser classificado. Em seguida, use o segundo índice para classificar e assim por diante até que a classificação seja concluída. (Este também é o princípio da regra do prefixo mais à esquerda)

Acho que você gosta

Origin blog.csdn.net/qq_43456605/article/details/133070554
Recomendado
Clasificación