Storage Engine

Da Wikipedia, l'enciclopedia libera.

Gli Storage Engine, un tempo noti come Table Type, sono librerie per MySQL e i suoi fork che implementano la gestione fisica dei dati. Alcuni dei compiti affidati agli Storage Engine sono: scrittura dei record, lettura dei record, indicizzazione, cache, transazioni.

Gli Storage Engine sono un tipo di plugin per MySQL e i suoi fork. Alcuni sono distribuiti insieme a MySQL. Altri sono prodotti da terze parti. Vi sono anche Storage Engine sviluppati per MariaDB, che sfruttano le sue funzionalità specifiche e non funzionano necessariamente su MySQL. Alcuni sono attivi per default e generalmente possono essere esclusi all'avvio o in fase di compilazione. Altri devono essere abilitati esplicitamente.

In pratica, scegliere uno Storage Engine piuttosto che un altro significa modificare il modo in cui i dati vengono gestiti. Ad esempio InnoDB è molto performante e assicura un livello ragionevole di consistenza dei dati; MyISAM non supporta le transazioni, ma questo gli permette di semplificare le operazioni di lettura, rendendolo quindi adatto ai grandi data warehouse; Memory scrive le tabelle in memoria ed è quindi indicato per le tabelle temporanee. Altri Storage Engine possono implementare una gestione dei dati fuori dall'ordinario, dotando quindi il server di funzionalità completamente nuove. Ad esempio CassandraSE permette a MariaDB di interfacciarsi con Apache Cassandra, CONNECT permette a MariaDB di utilizzare i file di testo in diversi formati come tabelle relazionali, mentre ShardQuery, SpiderSE e ScaleDB implementano lo sharding dei dati in modi diversi.

Interfaccia SQL[modifica | modifica sorgente]

MySQL e i suoi fork implementano una serie di istruzioni SQL che permettono di lavorare con gli Storage Engine.

Visualizzare gli Storage Engine installati[modifica | modifica sorgente]

Per visualizzare gli Storage Engine installati:

SHOW STORAGE ENGINES;

Questo comando visualizza una tabella che elenca gli Storage Engine presenti e alcune delle loro caratteristiche. La colonna Engine contiene il nome del plugin. La colonna Comment contiene una breve descrizione. La colonne Support indica se il server supporta lo Storage Engine. Ha tre valori possibili: DEFAULT significa che è supportato ed è quello utilizzato di default, quando si crea una tabella senza specificare l'engine da utilizzare; YES significa che è installato; NO significa che la libreria è presente ma non è stata installata. Le altre colonne indicano se lo Storage Engine fornisce o meno determinate funzionalità.

In alternativa è possibile interrogare la tabella PLUGINS nel database information_schema.

Installare e disinstallare gli Storage Engine[modifica | modifica sorgente]

Perché un plugin possa essere installato, è necessario che la libreria si trovi nella directory dei plugin, cioè quella puntata dalla variabile plugin_dir.

Per installare un plugin:

INSTALL PLUGIN nome_plugin SONAME 'nome_file';

Per disinstallare un plugin:

UNINSTALL PLUGIN nome_plugin;

Con MariaDB, se lo Storage Engine è parte di una libreria di plugin, è possibile installare e disinstallare questi plugin con un unico comando:

INSTALL SONAME 'nome_libreria';
UNINSTALL SONAME 'nome_libreria';

Per aggiornare un plugin occorre disinstallarlo e reinstallarlo.

Associare una tabella a uno Storage Engine[modifica | modifica sorgente]

Quando si crea una tabella è possibile specificare lo Storage Engine da utilizzare:

CREATE TABLE nome_tabella (
    ...definizione...
) ENGINE = 'nome_storage_engine';

Lo Storage Engine di una tabella può anche essere cambiato in un secondo momento:

ALTER TABLE nome_tabella ENGINE = 'nome_storage_engine';

Voci correlate[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]