GliIn [[informatica]] gli '''storage engine''', o '''Storagedatabase Engineengine''', un tempo noti come '''Tabletable Typetype''', sono [[Libreria (software)|librerie]] per [[MySQL]] e i suoi [[Fork (sviluppo software)|fork]] che implementano la gestione fisica dei dati. Alcuni dei compiti affidati agli Storagestorage Engineengine sono: scrittura dei record,e lettura dei [[record (database)|record]], indicizzazione, [[cache]], [[transazione (database)|transazioni]].
Gli Storagestorage Engineengine sono un tipo di [[plugin (informatica)|plugin]] per MySQL e i suoi fork. Alcuni sono distribuiti insieme a MySQL. Altri sono prodotti da terze parti. Vi sono anche Storagestorage Engineengine sviluppati per [[MariaDB]], che sfruttano le sue funzionalità specifiche e non funzionano necessariamente su MySQL. Alcuni sono attivi per [[default (informatica)|default]] e generalmente possono essere esclusi all'avvio o in fase di [[compilazione]]. Altri devono essere abilitati esplicitamente.
In pratica, scegliere uno Storagestorage Engineengine 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 [[datawaredata housewarehouse]]; [[MEMORYMemory (storage engine)|Memory]] scrive le tabelle in memoria ed è quindi indicato per le tabelle temporanee. Altri Storagestorage Engineengine 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 uilizzareutilizzare i [[file]] di testo in diversi formati come [[Tabella (basi di dati)|tabelle relazionali]], mentre [[ShardQuery]], [[SpiderSE]] e [[ScaleDB]] implementano lo sharding dei dati in modi diversi.
== Interfaccia SQL ==
MySQL e i suoi fork implementano una serie di istruzioni SQL che permettono di lavorare con gli Storagestorage Engineengine. ▼
=== Visualizzare gli Storagestorage Engineengine installati === ▼
▲MySQL e i suoi fork implementano una serie di istruzioni SQL che permettono di lavorare con gli Storage Engine.
Per visualizzare gli Storagestorage Engineengine installati: <syntaxhighlight lang="mysql">▼
</syntaxhighlight>Questo comando visualizza una tabella che elenca gli Storagestorage Engineengine presenti e alcune delle loro caratteristiche. La colonna {{Codice|Engine }}, mostrata nell'output del comando, contiene il nome del plugin. La colonna {{Codice|Comment }} contiene una breve descrizione. La colonne {{Codice|Support }} indica se il server supporta lo Storagestorage Engineengine. Ha tre valori possibili: {{Codice|DEFAULT }} significa che è supportato ed è quello utilizzato di default, quando si crea una tabella senza specificare l'engine da utilizzare; {{Codice|YES }} significa che è installato; {{Codice|NO }} significa che la libreria è presente ma non è stata installata. Le altre colonne indicano se lo Storagestorage Engineengine fornisce o meno determinate funzionalità. ▼
In alternativa è possibile interrogare la tabella {{Codice|PLUGINS }} nel database information_schema. ▼
▲=== Visualizzare gli Storage Engine installati ===
=== Installare oe disinstallare unogli Storagestorage Engineengine === ▼
▲Per visualizzare gli Storage Engine installati:
Perché un plugin possa essere installato, è necessario che la libreria si trovi nella directory dei plugin, cioè quella puntata dalla variabile {{Codice|plugin_dir }}. ▼
▲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 o disinstallare uno Storage Engine ===
▲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:
<syntaxhighlight lang="mysql">
INSTALL PLUGIN nome_plugin SONAME 'nome_file';
</syntaxhighlight>
Per disinstallare un plugin:
<syntaxhighlight lang="mysql">
UNINSTALL PLUGIN nome_plugin; ▼
</syntaxhighlight>
Con MariaDB, se lo storage engine è parte di una libreria di plugin, è possibile installare e disinstallare questi plugin con un unico comando:
▲ UNINSTALL PLUGIN nome_plugin;
<syntaxhighlight lang="mysql">
INSTALL SONAME 'nome_libreria';
</syntaxhighlight>
<syntaxhighlight lang="mysql">
UNINSTALL SONAME 'nome_libreria';
</syntaxhighlight>
Per aggiornare un plugin occorre disinstallarlo e reinstallarlo.
=== Associare una tabella a uno Storage Engine ===
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 ==
* [[MySQL]]
* [[MariaDB]]
* [[Percona]]
* [[Drizzle]]
== Collegamenti esterni ==
* [ httphttps://dev.mysql.com/doc/refman/5.5/en/storage-engines.html Storage Enginesengine] nella documentazione di MySQL ▼
* [ https://web.archive.org/web/20130320073211/https://kb.askmonty.org/it/storage-engine/ Storagestorage Enginesengine] nella KnowledgeBase di MariaDB ▼
{{Portale|software libero}}
▲* [http://dev.mysql.com/doc/refman/5.5/en/storage-engines.html Storage Engines] nella documentazione di MySQL
▲* [https://kb.askmonty.org/it/storage-engine/ Storage Engines] nella KnowledgeBase di MariaDB
[[Categoria: Software libero per base datiMySQL]]
[[Categoria:Software per base dati]]
[[Categoria:Librerie C++]]
|