aspose.info
PT

Formato de arquivo MYI

Atualizado em

O que é um arquivo MYI?

MYI também é conhecido como o arquivo MySQL MyISAM Index. Ele é usado para armazenar índices para a tabela MyISAM pelo MySQL. O índice do banco de dados MySQL define a estrutura da tabela e contém o mecanismo de controle para verificar a integridade das tabelas.

Formato de arquivo MYI

O arquivo MYI tem duas partes, o cabeçalho e os valores-chave.

Cabeçalho MYI

O cabeçalho contém informações sobre opções, tamanhos de arquivo e chaves. As chaves no MySQL são criadas com um comando como

CREATE [UNIQUE] INDEX.

Os arquivos que lêem e gravam arquivos MYI estão no diretório ./myisam. Possui os seguintes arquivos:

  • mi_open.c: Este arquivo contém as rotinas que escrevem cada seção do cabeçalho.
  • mi_create.c: Este arquivo contém as rotinas que chamam as rotinas mi_open.c.
  • myisamdef.h: Este arquivo contém as definições da estrutura.

O cabeçalho tem as seguintes seções:

  • estado: O estado é escrito por mi_open.c, mi_state_info_write(). Essa estrutura ocorre uma vez no arquivo.
  • base: A base é escrita por mi_open.c, mi_base_info_write(). O MI_BASE_INFO é a estrutura correspondente para a base em myisamdef.h. Essa estrutura ocorre uma vez no arquivo.
  • keydef: O keydef é escrito por mi_open.c, mi_keydef_write(). O MI_KEYDEF é a estrutura correspondente para o keydef em myisamdef.h. É uma estrutura de múltiplas ocorrências que aparece para cada índice.
  • recinfo: O recinfo é escrito por mi_open.c, mi_recinfo_write(). O MI_COLUMNDEF é a estrutura correspondente para o recinfo em myisamdef.h. É uma estrutura de ocorrência múltipla que aparece uma vez de cada campo que aparece em uma chave.

Valores-chave

As páginas no MySQL são chamadas de blocos. Os valores-chave estão em blocos. Um bloco contém informações de apenas um índice. Cada chave contém todo o conteúdo de todas as colunas. O comprimento normal do bloco é 0x0400 (1024) bytes. O ponteiro tem um número de tamanho fixo (4 bytes) para tabelas de linha fixa que contém um número de linha ordinal. Se a chave for nula, o byte será 0x00. Um bloco normal está pelo menos 65% cheio e normalmente 80% cheio.

O arquivo myisamdef.h contém as seguintes informações expressas em constantes. O número máximo de chaves é 32 (MI_MAX_KEY) e o número máximo de segmentos em uma chave é 16 (MI_MAX_KEY_SEG). O comprimento máximo da chave é 500 (MI_MAX_KEY_LENGTH). O comprimento máximo do bloco é 16384 (MI_MAX_KEY_BLOCK_LENGTH).

Referências

Veja também