aspose.info
SV

MYI filformat

Uppdaterad

Vad är en MYI-fil?

MYI är också känd som MySQL MyISAM Index-fil. Den används för att lagra index för MyISAM-tabellen av MySQL. MySQL databasindex definierar tabellens struktur och innehåller kontrollmekanismen för att kontrollera tabellernas integritet.

MYI filformat

MYI-filen har två delar, rubriken och nyckelvärdena.

MYI Header

Rubriken innehåller information om alternativ, filstorlekar och nycklar. Nycklarna i MySQL skapas med ett kommando som

CREATE [UNIQUE] INDEX.

Filerna som läser och skriver MYI-filer finns i ./myisam-katalogen. Den har följande filer:

  • mi_open.c: Den här filen innehåller rutinerna som skriver varje sektion av rubriken.
  • mi_create.c: Den här filen har de rutiner som anropar mi_open.c-rutiner.
  • myisamdef.h: Den här filen har strukturdefinitionerna.

Rubriken har följande avsnitt:

  • tillstånd: Tillståndet är skrivet av mi_open.c, mi_state_info_write(). Denna struktur förekommer en gång i filen.
  • bas: Basen är skriven av mi_open.c, mi_base_info_write(). MI_BASE_INFO är motsvarande struktur för basen i myisamdef.h. Denna struktur förekommer en gång i filen.
  • keydef: Keydef är skrivet av mi_open.c, mi_keydef_write(). MI_KEYDEF är motsvarande struktur för keydef i myisamdef.h. Det är en struktur med flera förekomster som visas för varje index.
  • recinfo: Recinfon är skriven av mi_open.c, mi_recinfo_write(). MI_COLUMNDEF är motsvarande struktur för recinfo i myisamdef.h. Det är en struktur med flera förekomster som visas en gång i varje fält som förekommer i en nyckel.

Nyckelvärden

Sidor i MySQL kallas block. Nyckelvärden är i block. Ett block innehåller information från endast ett index. Varje nyckel innehåller hela innehållet i alla kolumner. Den normala blocklängden är 0x0400 (1024) byte. Pekaren har ett nummer med fast storlek (4-byte) för tabeller med fast rad som innehåller ett ordningsradnummer. Om nyckeln är null är byten 0x00. Ett normalt block är minst 65 % fullt och är vanligtvis 80 % fullt.

Myisamdef.h-filen innehåller följande information uttryckt i konstanter. Det maximala antalet nycklar är 32 (MI_MAX_KEY) och det maximala antalet segment i en nyckel är 16 (MI_MAX_KEY_SEG). Den maximala längden på nyckeln är 500 (MI_MAX_KEY_LENGTH). Den maximala längden på blocket är 16384 (MI_MAX_KEY_BLOCK_LENGTH).

Referenser

Se även