Storage engine: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Horcrux92 ha spostato la pagina Storage Engine a Storage engine senza lasciare redirect: maiuscola non necessaria
m fix wl
 
(6 versioni intermedie di 6 utenti non mostrate)
Riga 1:
In [[informatica]] gli '''storage engine''', o '''database engine''', un tempo noti come '''table type''', sono [[libreriaLibreria (informaticasoftware)|librerie]] per [[MySQL]] e i suoi [[Fork (sviluppo software)|fork]] che implementano la gestione fisica dei dati. Alcuni dei compiti affidati agli storage engine sono: scrittura e lettura dei [[record (database)|record]], indicizzazione, [[cache]], [[transazione (database)|transazioni]].
 
Gli storage engine 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 storage engine 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 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 (storage engine)|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 [[modelloTabella relazionale(basi di dati)|tabelle relazionali]], mentre [[ShardQuery]], [[SpiderSE]] e [[ScaleDB]] implementano lo sharding dei dati in modi diversi.
 
== Interfaccia SQL ==
Riga 9:
 
=== Visualizzare gli storage engine installati ===
Per visualizzare gli storage engine installati:<syntaxhighlight lang="mysql">
SHOW STORAGE ENGINES;
</syntaxhighlight>Questo comando visualizza una tabella che elenca gli storage engine presenti e alcune delle loro caratteristiche. La colonna {{codeCodice|Engine}}, mostrata nell'output del comando, contiene il nome del plugin. La colonna {{codeCodice|Comment}} contiene una breve descrizione. La colonne {{codeCodice|Support}} indica se il server supporta lo storage engine. Ha tre valori possibili: {{codeCodice|DEFAULT}} significa che è supportato ed è quello utilizzato di default, quando si crea una tabella senza specificare l'engine da utilizzare; {{codeCodice|YES}} significa che è installato; {{codeCodice|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 {{codeCodice|PLUGINS}} nel database information_schema.
SHOW STORAGE ENGINES;
 
Questo comando visualizza una tabella che elenca gli storage engine presenti e alcune delle loro caratteristiche. La colonna {{code|Engine}}, mostrata nell'output del comando, contiene il nome del plugin. La colonna {{code|Comment}} contiene una breve descrizione. La colonne {{code|Support}} indica se il server supporta lo storage engine. Ha tre valori possibili: {{code|DEFAULT}} significa che è supportato ed è quello utilizzato di default, quando si crea una tabella senza specificare l'engine da utilizzare; {{code|YES}} significa che è installato; {{code|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 {{code|PLUGINS}} nel database information_schema.
 
=== Installare e disinstallare gli storage engine ===
Perché un plugin possa essere installato, è necessario che la libreria si trovi nella directory dei plugin, cioè quella puntata dalla variabile {{codeCodice|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:
<syntaxhighlight lang="mysql">
INSTALL SONAME 'nome_libreria';
</syntaxhighlight>
 
<syntaxhighlight lang="mysql">
INSTALL SONAME 'nome_libreria';
UNINSTALL SONAME 'nome_libreria';
 
</syntaxhighlight>
UNINSTALL SONAME 'nome_libreria';
 
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 ==
Riga 54 ⟶ 46:
 
== Collegamenti esterni ==
* [httphttps://dev.mysql.com/doc/refman/5.5/en/storage-engines.html Storage engine] nella documentazione di MySQL
* [https://web.archive.org/web/20130320073211/https://kb.askmonty.org/it/storage-engine/ storage engine] nella KnowledgeBase di MariaDB
 
{{Portale|software libero}}
 
[[Categoria:Software liberi per basi di dati]]
[[Categoria:Librerie C++]]
[[Categoria:MySQL]]