Lavorare con i motori di database MySQL

Questo articolo è un’introduzione al lavoro con i motori di database in MySQL.

Per seguire alcune delle procedure in questo articolo, è necessario disporre dell’accesso root al server.

Informazioni sui motori di database MySQL

I motori di database forniscono le funzionalità di base per MySQL per lavorare ed elaborare i dati.

I due motori di database MySQL più comuni e popolari sono MyISAM e InnoDB. MyISAM è il motore predefinito per MySQL per le versioni precedenti alla 5.5.5 e funziona bene nella maggior parte degli scenari. Tuttavia, a seconda delle esigenze, ci sono situazioni in cui un altro motore di database, come InnoDB, potrebbe essere la scelta migliore. Ad esempio, InnoDB supporta le transazioni, mentre MyISAM no. InnoDB fornisce anche il supporto per le chiavi esterne, mentre MyISAM no.

Se hai accesso root al tuo server, hai il controllo completo su come e quando MySQL utilizza i vari motori di database. È possibile modificare il motore di database predefinito, modificare il motore di database di una tabella specifica e altro ancora.

Questo articolo presuppone che tu sappia già come accedere a MySQL dalla riga di comando usando il programma mysql. Se non sai come farlo, leggi prima questo articolo.

Determinazione del motore di database predefinito

Per determinare il motore di database predefinito per l’installazione, digitare il seguente comando nel prompt mysql>:

SHOW ENGINES;

Viene visualizzato un elenco di motori supportati, insieme a una breve descrizione e alle funzionalità supportate per ciascun motore. Il motore di database predefinito è contrassegnato come PREDEFINITO nella colonna Supporto.

Modifica del motore di database predefinito

È possibile modificare il motore di database predefinito per l’installazione di MySQL. Dopo aver eseguito questa operazione, tutte le nuove tabelle create utilizzeranno il nuovo motore di database (a meno che non si imposti esplicitamente il motore durante la creazione della tabella).

Per modificare il motore di database predefinito, attenersi alla seguente procedura:

  1. Utilizzare l’editor di testo preferito per aprire my.file cnf sul tuo server. La posizione del mio.il file cnf dipende dalla tua distribuzione Linux:
    • Su CentOS e Fedora, il mio.il file cnf si trova nella directory / etc.
    • Su Debian e Ubuntu, il mio.il file cnf si trova nella directory/etc / mysql.
  2. Nel mio.file cnf, individuare la sezione.
  3. Aggiungere o modificare la seguente riga nella sezione. Sostituire il MOTORE con il nome del motore che si desidera utilizzare come predefinito:

    default-storage-engine=ENGINE

    Se si abilita il motore di database InnoDB, a seconda della distribuzione Linux potrebbe essere necessario disabilitare la seguente riga in my.file cnf:

    skip-innodb

    Per fare ciò, basta aggiungere un segno di sterlina ( # ) all’inizio della riga, come segue:

    #skip-innodb

  4. Salva le modifiche al mio.file cnf, quindi uscire dall’editor di testo.
  5. Riavviare il server MySQL utilizzando il comando appropriato per la vostra distribuzione Linux:

    • Per CentOS e Fedora, tipo:
      service mysqld restart
    • Per Debian e Ubuntu, tipo:

      service mysql restart
  6. Per confermare la nuova impostazione di default del motore di database, utilizza i MOTORI di istruzione SQL come descritto nel Determinare il database predefinito motore di sezione.

Determinazione del motore di database corrente di una tabella

Per determinare quale motore una tabella di database sta attualmente utilizzando, digitare il seguente comando al prompt mysql>. Sostituire il database con il nome del database che si desidera controllare:

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database';

Questo comando visualizza un elenco di ogni tabella nel database, insieme al motore che ogni tabella sta utilizzando.

Modifica del motore di database di una tabella

È possibile modificare il motore di database per una tabella già esistente. Ad esempio, la seguente istruzione SQL mostra come modificare una tabella denominata myTable per utilizzare il motore InnoDB:

ALTER TABLE myTable ENGINE = InnoDB;

Creazione di una nuova tabella con un motore di database specifico

Quando si crea una tabella in un database, è possibile impostare esplicitamente il suo motore di database (altrimenti, MySQL utilizza il motore di database Ad esempio, la seguente istruzione SQL mostra come creare una tabella denominata myTable che utilizza il motore di database MyISAM:

CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE MyISAM;

Similmente, per creare una tabella che utilizza il motore di database InnoDB, è possibile utilizzare la seguente istruzione SQL:

CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE InnoDB;

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.