aspose.info
CS

Formát souboru MYI

Aktualizováno

Co je soubor MYI?

MYI je také známý jako soubor MySQL MyISAM Index. Používá se k ukládání indexů pro tabulku MyISAM pomocí MySQL. Index databáze MySQL definuje strukturu tabulky a obsahuje kontrolní mechanismus pro kontrolu integrity tabulek.

Formát souboru MYI

Soubor MYI má dvě části, záhlaví a hodnoty klíče.

MYI záhlaví

Záhlaví obsahuje informace o možnostech, velikostech souborů a klíčích. Klíče v MySQL se vytvářejí pomocí příkazu jako

CREATE [UNIQUE] INDEX.

Soubory, které čtou a zapisují soubory MYI, jsou v adresáři ./myisam. Obsahuje následující soubory:

  • mi_open.c: Tento soubor obsahuje rutiny, které zapisují jednotlivé části záhlaví.
  • mi_create.c: Tento soubor obsahuje rutiny, které volají rutiny mi_open.c.
  • myisamdef.h: Tento soubor má definice struktury.

Záhlaví má následující sekce:

  • state: Stav je zapsán pomocí mi_open.c, mi_state_info_write(). Tato struktura se v souboru vyskytuje jednou.
  • base: Báze je zapsána pomocí mi_open.c, mi_base_info_write(). MI_BASE_INFO je odpovídající struktura pro základ v myisamdef.h. Tato struktura se v souboru vyskytuje jednou.
  • keydef: Keydef je zapsán pomocí mi_open.c, mi_keydef_write(). MI_KEYDEF je odpovídající struktura pro keydef v myisamdef.h. Je to struktura s více výskyty, která se objevuje pro každý index.
  • recinfo: Recinfo je zapsáno mi_open.c, mi_recinfo_write(). MI_COLUMNDEF je odpovídající struktura pro recinfo v myisamdef.h. Je to struktura s více výskyty, která se objeví jednou v každém poli, které se objeví v klíči.

Klíčové hodnoty

Stránky v MySQL se nazývají bloky. Klíčové hodnoty jsou v blocích. Blok obsahuje informace pouze z jednoho indexu. Každý klíč obsahuje celý obsah všech sloupců. Normální délka bloku je 0x0400 (1024) bajtů. Ukazatel má pevnou velikost (4 bajty) pro tabulky s pevnými řádky, které obsahují pořadové číslo řádku. Pokud je klíč null, pak je bajt 0x00. Normální blok je zaplněn alespoň z 65 % a obvykle z 80 %.

Soubor myisamdef.h obsahuje následující informace vyjádřené v konstantách. Maximální počet klíčů je 32 (MI_MAX_KEY) a maximální počet segmentů v klíči je 16 (MI_MAX_KEY_SEG). Maximální délka klíče je 500 (MI_MAX_KEY_LENGTH). Maximální délka bloku je 16384 (MI_MAX_KEY_BLOCK_LENGTH).

Reference

Viz také