MySQL – Tipi di tabella

5 Lug

Out Of Date Warning

Questo post è stato pubblicato più di 2 anni fa (il 5 luglio 2011). Le idee vanno avanti velocemente, le prospettive cambiano quindi i contenuti potrebbero non essere aggiornati. Ti prego di tenere in considerazione questo, e di verificare le informazioni tecniche presenti nell'articolo prima di farne affidamento per i tuoi scopi.

MySQL supporta diversi tipi di tabelle (storage engine).
Ogni tipo di tabella sostiene diverse funzioni, ha i suoi pregi ed i sui limiti (soprattutto in termini di quantità di dati che è possibile memorizzare).
Inoltre si comporta meglio o peggio in determinate situazioni.
In questo articolo ci concentreremo sui due modelli di motori di archiviazione (storage engine) largamente più utilizzati tralasciando gli altri.

MyISAM o InnoDB

Il tipo di tabella più importante è MyISAM, che è inoltre lo storage engine di default su tutti i sistemi operativi eccetto per Windows.
Le tabelle MyISAM sono utili per la maggior parte delle applicazioni, gestiscono SELECT ed INSERT molto rapidamente ma non possono gestire le transazioni.
Questo è il loro principale svantaggio.

Dopo MyISAM, il motore di archiviazione più comune è InnoDB, che è anche il tipo di tabella di default per le installazioni Windows di MySQL.
Le tabelle InnoDB possono essere utilizzate per le transazioni e lavorano bene con gli UPDATE.
Ma il motore di memorizzazione InnoDB è generalmente più lento di MyISAM e richiede più spazio su disco sul server. Inoltre, una tabella InnoDB non supporta gli indici FULLTEXT.
Le tabelle transazionali sono sicuramente più sicure in quanto permettono di recuperere i dati anche in caso di crash di MySQL, inoltre permettono di eseguire più modifiche e di eseguirle tutte insieme
in caso positivo o di annullarle tutte nel caso che qualcosa vada storto.

Sintassi

Per specificare il motore di archiviazione quando si definisce una tabella, aggiungere una clausola alla fine della dichiarazione di creazione:

Se non si specifica un motore di storage durante la creazione della tabella, MySQL utilizzerà il tipo di default per il server MySQL.
Tuttavia è possibile modificare il tipo al momento dell’installazione di MySQL oppure lanciando in seguito il Configuration Wizard.
Per modificare il tipo di una tabella esistente possiamo utilizzare il comando ALTER:

Il comando ALTER viene utilizzato principalmente per modificare la struttura di una tabella esistente.
Questo significa aggiungere, eliminare o modificare le colonne in essa, comprese laggiunta e l’eliminazione di indici .
Un’istruzione ALTER può anche essere usata per rinominare la tabella nel suo complesso. La sintassi di base di è:

Per visualizzare le informazioni correnti delle tabelle (quindi anche il tipo di storage engine) usiamo:

Il comando SHOW TABLE STATUS restituisce tutti i tipi di informazioni utili sulle tabelle di un database.
Il risultato restituito tuttavia sarà difficile da leggere, in quanto si tratta di una grande tabella visualizzata su più righe. Comunque quello che stiamo cercando sono:
il primo elemento di ogni riga che è il nome della tabella, ed il secondo elemento che è il motore della tabella. Il motore sarà probabilmente o MyISAM o InnoDB.

Tips

Per rendere i risultati delle queries più semplici da visualizzare nel client MySQL, è possibile aggiungere il parametro G.
In questo modo i risultati saranno visualizzati in verticale anziché in orizzontale. Si noti che non è necessario utilizzare un punto e virgola in chiusura, perché il G termina il comando.

Lo stesso database può avere tabelle di tipi diversi. L’esempio più comune è un database di e-commerce che utilizza MyISAM per clienti e prodotti, ed InnoDB per gli ordini (per consentire le transazioni).

2 Commenti su “MySQL – Tipi di tabella”

  1. Iphone 5 25 settembre 2011 at 05:33 #

    he weblog was how do i say it… relevant, finally something that helped me. Many thanks

  2. Humberto Detrolio 10 ottobre 2011 at 06:44 #

    I couldn’t resist commenting

Lascia un commento