Aria (storage engine)
# Aria (storage engine)

Aria è uno storage engine per MySQL e MariaDB. Si tratta di un'evoluzione, non di un fork, del più noto MyISAM. L'autore originale è Michael "Monty" Widenius che ha ideato anche MyISAM, il più vecchio ISAM e lo stesso MySQL. Il nome originale di Aria era Maria, in omaggio alla seconda figlia dell'autore; tuttavia questo creava qualche confusione con MariaDB, pertanto nel settembre 2010 è uscita la prima versione di Aria con il nuovo nome.

L'intento dichiarato di Widenius è quello di creare un "crash-safe MyISAM". In effetti le funzionalità di Aria ricalcano fedelmente quelle di MyISAM, aggiungendo alcune caratteristiche che ne aumentano l'affidabilità. Per usufruirne occorre creare esplicitamente tabelle transazionali, sapendo che in questo caso le prestazioni saranno leggermente inferiori. Anche i tool da riga di comando di Aria (distribuiti con MariaDB), le loro opzioni e i loro output ricalcano fedelmente quelli di MyISAM.

Al momento lo storage engine Merge, che crea una "supertabella" formata dall'unione di più tabelle MyISAM, non funziona con Aria, né è disponibile uno storage engine che permetta di unire più tabelle Aria.

La licenza di Aria è la GNU GPL versione 2.

## Struttura dei file

Ogni tabella di tipo Aria è registrata fisicamente in due file:

* nome_tabella.MAI
* nome_tabella.MAD

Il file con estensione .MAI contiene gli indici della tabella e i metadati. Il file con estensione .MAD contiene invece i dati veri e propri.

### I formati dei dati

Aria supporta tre formati per lo storage dei dati:

* PAGE - è l'unico utilizzabile nel caso delle tabelle transazionali, oltre a essere il formato di default;
* FIXED;
* DYNAMIC.

FIXED e DYNAMIC sono stati aggiunti per permettere di emulare MyISAM. Non è disponibile il tipo COMPRESSED, che è utilizzabile con MyISAM tramite la utility myisam_pack.

Il formato può essere assegnato esplicitamente alla creazione delle tabella utilizzando l'opzione ROW_FORMAT dell'istruzione CREATE TABLE. Può inoltre essere cambiato in un secondo momento con l'istruzione ALTER TABLE.

