Uno dei primi passaggi nell’ottimizzazione di portali di una “certa età”, realizzati con WordPress, è andare a verificare il corretto funzionamento del DataBase.
Infatti, molti siti utilizzano ancora il motore di archiviazione MyISAM nel loro database invece del più performante InnoDB. Ma cosa comporta utilizzare un storage engine rispetto ad un altro? Vediamo insieme in questo breve articolo.
MyISAM e InnoDB cosa sono
MyISAM e InnoDB sono due motori per il salvataggio di dati per MySQL (un relational database management system – RDBMS).
MyISAM: le caratteristiche
MyISAM è stato lo storage engine predefinito in MySQL dalla sua introduzione (versione 3.23) fino alla versione 5.5.
MyISAM utilizza la struttura ISAM e deriva da un tipo più vecchio, oggi non più utilizzato, che si chiamava appunto ISAM.
È estremamente veloce e richiede poche risorse sia in termini di memoria RAM che in termini di spazio su disco. Il suo limite principale rispetto ad alcuni altri SE (Storage Engine) consiste nel mancato supporto delle transazioni.
Le tabelle di tipo MyISAM si compongono di 3 file con estensioni .frm, .MYD e .MIY. Il primo file contiene la struttura della tabella, il secondo i dati e il terzo gli indici.
Per trasferire una tabella da una macchina ad un’altra è sufficiente spostare questi 3 file.
InnoDB: le caratteristiche
InnoDB è uno storage engine molto più completo rispetto ad MyISAM. Tra le caratteristiche principali vi sono le foreign key e la transazionalità, con le quali è possibile creare una base di dati relazionale e transazionale.
Per trasferire questo tipo di tabelle da un server ad un altro non è sufficiente spostarne i file e questo rende più complicate le procedure di backup.
Differenze tra InnoDB e MyISAM
Vediamo in cosa si differenzia questi due motori per il salvataggio dei dati, InnoDB e MyISAM ovviamente:
- per riparare una tabella dopo un crash del sistema, InnoDB riesegue le ultime istruzioni registrate nei log. MyISAM deve invece eseguire una scansione completa della tabella per poi ripararla, ed eventualmente ricostruire gli indici. Di conseguenza, il tempo impiegato da InnoDB per la riparazione non aumenta con il crescere dei dati contenuti nella tabella, mentre il tempo impiegato da MyISAM è proporzionale alle dimensioni della tabella.
- InnoDB ha una sua propria gestione della cache. Le pagine di dati modificate non vengono inviate immediatamente al sistema e questo, in alcuni casi, può rendere la modifica dei dati molto più rapida con InnoDB.
- MyISAM generalmente immagazzina i record di una tabella nell’ordine in cui sono stati creati, mentre InnoDB li immagazzina nell’ordine seguito dalla chiave primaria. Quando viene utilizzata la chiave per la lettura di una riga, l’operazione avviene più rapidamente.
- InnoDB comprime i record molto meno rispetto a MyISAM. Questo significa che la memoria e lo spazio su disco richiesti da InnoDB sono maggiori, nonostante nella versione 5 di MySQL lo spazio su disco richiesto sia diminuito del 20%.
Ne risulta quindi che è molto più affidabile rispetto a MyISAM.
Stai utilizzando MyISAM o InnoDB?
Se stai usando una versione di WordPress abbastanza nuova, è probabile che stai già adoperando il motore di archiviazione MySQL di InnoDB.
Se il tuo sito ha un po’ di anni potresti avere tabelle MyISAM e InnoDB miste e abbinate. In questo caso potresti vedere dei miglioramenti convertendole tutte.
Contattaci per scoprire i nostri piani di manutenzione per i siti internet. Scopri perchè è importante fare una adeguata manutenzione al proprio sito internet leggendo il nostro articolo Importanza della manutenzione di un sito internet
Leave a Comment