Aria Storage Formats

Lo Storage Engine Aria supporta tre tipi di formati di storage.

Questi sono FIXED, DYNAMIC e PAGE, ed è possibile impostarli con l'opzione ROW FORMAT di CREATE TABLE. PAGE è il formato predefinito, mentre FIXED e DYNAMIC sono essenzialmente uguali ai formati di MyISAM.

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.

Page

Il formato Page è quello predefinito per le tabelle Aria, ed è l'unico che può essere utilizzato con TRANSACTION=1.

Le tabelle Page presentano le seguenti caratteristiche:

  • Vengono registrate nella cache delle pagine, che fornisce prestazioni migliori per l'accesso casuale, perché utilizza meno chiamate di sistema.
  • Non si frammentano facilmente quanto il formato DYNAMIC durante gli UPDATE. Il numero massimo di frammenti è molto basso.
  • Si aggiornano più rapidamente delle tabelle dinamiche.
  • Hanno un leggero ritardo nello storage, che si nota soprattutto con righe molto piccole.
  • La scansione completa delle tabelle è più lenta.
  • Sono più lente se vi sono diversi duplicati nelle chiavi, perché Aria scrive prima una riga, poi le chiavi, e solo a quel punto cerca i duplicati.

Commenti

Sto caricando i commenti......
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.