Diretório de artigos
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+
- 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';
Correspondência entre tabelas e arquivos do banco de dados
2. Implementação do índice
Implementação do índice do mecanismo de armazenamento MyISAM
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.
3. Índice conjunto (mais comumente usado na prática)
Estrutura do índice da união
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)