Aria Storage Formats
Contents
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.