Questo articolo è un’introduzione al lavoro con i motori di database in MySQL.
- Informazioni sui motori di database MySQL
- Determinazione del motore di database predefinito
- Modifica del motore di database predefinito
- Determinazione del motore di database corrente di una tabella
- Modifica del motore di database di una tabella
- Creazione di una nuova tabella con un motore di database specifico
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.
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:
- 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.
- Nel mio.file cnf, individuare la sezione.
-
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
- Salva le modifiche al mio.file cnf, quindi uscire dall’editor di testo.
-
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
- Per CentOS e Fedora, tipo:
- 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;