Storage engine
In informatica gli storage engine, o database 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 e 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 wikitesto]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 wikitesto]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
, mostrata nell'output del comando, 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 wikitesto]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.
Voci correlate
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- Storage engine nella documentazione di MySQL
- storage engine nella KnowledgeBase di MariaDB