aspose.info
IT

Formato file MYI

Aggiornato

Che cos’è un file MYI?

MYI è anche conosciuto come il file MySQL MyISAM Index. Viene utilizzato per memorizzare gli indici per la tabella MyISAM da MySQL. L’indice del database MySQL definisce la struttura della tabella e contiene il meccanismo di controllo per verificare l’integrità delle tabelle.

Formato file MYI

Il file MYI ha due parti, l’intestazione e i valori chiave.

Intestazione MYI

L’intestazione contiene informazioni su opzioni, dimensioni file e chiavi. Le chiavi in MySQL vengono create con un comando come

CREATE [UNIQUE] INDEX.

I file che leggono e scrivono i file MYI si trovano nella directory ./myisam. Ha i seguenti file:

  • mi_open.c: questo file contiene le routine che scrivono ogni sezione dell’intestazione.
  • mi_create.c: questo file ha le routine che chiamano le routine mi_open.c.
  • myisamdef.h: questo file contiene le definizioni della struttura.

L’intestazione ha le seguenti sezioni:

  • state: lo stato è scritto da mi_open.c, mi_state_info_write(). Questa struttura si verifica una volta nel file.
  • base: la base è scritta da mi_open.c, mi_base_info_write(). MI_BASE_INFO è la struttura corrispondente per la base in myisamdef.h. Questa struttura si verifica una volta nel file.
  • keydef: il keydef è scritto da mi_open.c, mi_keydef_write(). MI_KEYDEF è la struttura corrispondente per il keydef in myisamdef.h. È una struttura a ricorrenza multipla che appare per ogni indice.
  • recinfo: Il recinfo è scritto da mi_open.c, mi_recinfo_write(). MI_COLUMNDEF è la struttura corrispondente per recinfo in myisamdef.h. È una struttura a più occorrenze che appare una volta per ogni campo che appare in una chiave.

Valori chiave

Le pagine in MySQL sono chiamate blocchi. I valori chiave sono in blocchi. Un blocco contiene informazioni da un solo indice. Ogni chiave contiene l’intero contenuto di tutte le colonne. La normale lunghezza del blocco è 0x0400 (1024) byte. Il puntatore ha un numero di dimensione fissa (4 byte) per le tabelle a riga fissa che contiene un numero di riga ordinale. Se la chiave è null, il byte è 0x00. Un blocco normale è pieno almeno per il 65% e in genere è pieno per l'80%.

Il file myisamdef.h contiene le seguenti informazioni espresse in costanti. Il numero massimo di chiavi è 32 (MI_MAX_KEY) e il numero massimo di segmenti in una chiave è 16 (MI_MAX_KEY_SEG). La lunghezza massima della chiave è 500 (MI_MAX_KEY_LENGTH). La lunghezza massima del blocco è 16384 (MI_MAX_KEY_BLOCK_LENGTH).

Riferimenti

Vedi anche