This is a read-only copy of the MariaDB Knowledgebase generated on 2024-12-22. For the latest, interactive version please visit https://mariadb.com/kb/.

MyISAM Storage Formats

Lo Storage Engine MyISAM supporta tre differenti formati di storage.

Questi sono FIXED, DYNAMIC e COMPRESSED, e possono essere impostati tramite l'opzione ROW FORMAT nell'istruzione CREATE TABLE, o possono essere scelti automaticamente a seconda dei tipi delle colonne.

Fixed-length

Le tabelle fixed-length (o statiche) contengono righe di lunghezza fissa. In tutti i record le colonne hanno rispettivamente la stessa lunghezza, indipendentemente dai dati contenuti. E' il formato predefinito se la tabella non contiene campi BLOB, TEXT, VARCHAR o VARBINARY, e nessun altro ROW FORMAT è specificato. E' anche possibile impostarlo esplicitamente con ROW_FORMAT=FIXED nella definizione della tabella.

Le tabelle contenenti campi BLOB o TEXT non possono essere FIXED, perché questi tipi sono dinamici.

Le tabelle di lunghezza fissa presentano le seguenti caratteristiche:

  • Veloci, perché MariaDB sa sempre dove cominciano i record
  • Facili da registrare nella cache
  • Prendono più spazio delle tabelle dynamic e compressed, perché per ogni record viene allocato lo spazio massimo.
  • Ricostruire dopo un crash è più semplice grazie alle posizioni fisse
  • Niente frammentazione né necessità di riorganizzare, a meno che non si eliminino i record e si desideri recuperare lo spazio.

Dynamic

Le tabelle Dynamic contengono record di lunghezza variabile. E' il formato predefinito per le tabelle contenenti campi BLOB, TEXT, VARCHAR e VARBINARY, se nessun altro ROW FORMAT è specificato. E' possibile impostare DYNAMIC con ROW_FORMAT=DYNAMIC nella definizione della tabella.

Le tabelle dinamiche presentano le seguenti caratteristiche:

  • Ogni riga contiene un header che ne indica la lunghezza.
  • Le righe si frammentano facilmente. Se si esegue un UPDATE di un record aumentandone la lunghezza, è probabile che questo occuperà più posizioni sul disco.
  • Tutte le colonne stringa con una lunghezza di quattro o più sono dinamiche.
  • Richiedono meno spazio delle tabelle fixed-length.
  • Recuperare dopo un crash è più complicato.

Compressed

Il formato Compressed è di sola lettura e si ottiene con lo strumento myisampack. Per decomprimere le tabelle di usa myisamchk.

Le tabelle compresse presentano le seguenti caratteristiche:

  • Sebbene i dati siano di sola lettura, le istruzioni DDL come DROP TABLE e TRUNCATE TABLE funzionano correttamente.
  • Prendono meno spazio delle tabelle fixed e dynamic.
  • Le righe vengono compresse separatamente, riducendo il ritardo nell'accesso ai dati.
  • Gli header delle righe occupano da uno a tre byte.
  • Le righe possono essere compresse con diversi metodi, compresi:
    • Compressione dello spazio del prefisso
    • Compressione dello spazio del suffisso
    • Le colonne contenenti piccoli insiemi di valori sono convertite in ENUM
    • Gli zeri numerici vengono registrati in un solo bit
    • Le colonne numeriche intere vengono convertite al tipo numerico più piccolo che sia in grado di contenerne i dati
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.