Questo articolo è un'introduzione all'utilizzo dei motori di database in MySQL.
Per seguire alcune delle procedure descritte in questo articolo, è necessario disporre dell'accesso come root al server.Informazioni sui motori di database MySQL
I motori di database forniscono le funzionalità di base per consentire a MySQL di 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 tue 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 supporto per chiavi esterne, mentre MyISAM no.
Se hai accesso come root al tuo server, hai il controllo completo su come e quando MySQL utilizza i vari motori di database. Puoi modificare il motore di database predefinito, modificare il motore di database di una tabella specifica e altro.
Questo articolo presuppone che tu sappia già come accedere a MySQL dalla riga di comando usando mysql programma. Se non sai come farlo, leggi prima questo articolo.Determinazione del motore di database predefinito
Per determinare il motore di database predefinito per la tua installazione, digita il seguente comando in mysql> richiesta:
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 DEFAULT nel Supporto colonna.
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 che crei utilizzeranno il nuovo motore di database (a meno che tu non imposti esplicitamente il motore durante la creazione della tabella).
Per modificare il motore di database predefinito, attenersi alla seguente procedura:
- Utilizza il tuo editor di testo preferito per aprire my.cnf file sul tuo server. La posizione di my.cnf file dipende dalla tua distribuzione Linux:
- Su CentOS e Fedora, my.cnf si trova in /etc directory.
- Su Debian e Ubuntu, my.cnf si trova in /etc/mysql directory.
- Nel my.cnf individua il file [mysqld] sezione.
-
Aggiungi o modifica la seguente riga in [mysqld] sezione. Sostituisci MOTORE con il nome del motore che vuoi utilizzare come predefinito:
default-storage-engine=ENGINE
Se stai abilitando il motore di database InnoDB, a seconda della tua distribuzione Linux potresti dover disabilitare la seguente riga in my.cnf file:
skip-innodb
Per fare ciò, aggiungi semplicemente un cancelletto (# ) all'inizio della riga, come segue:
#skip-innodb
- Salva le modifiche in my.cnf file, quindi esci dall'editor di testo.
-
Riavvia il server MySQL utilizzando il comando appropriato per la tua distribuzione Linux:
- Per CentOS e Fedora, digita:
service mysqld restart
-
Per Debian e Ubuntu, digita:
service mysql restart
- Per CentOS e Fedora, digita:
- Per confermare il nuovo motore di database predefinito, utilizza MOSTRA MOTORI Istruzione SQL come descritto nella sezione Determinazione del motore di database predefinito.
Determinazione del motore di database corrente di una tabella
Per determinare quale motore sta attualmente utilizzando una tabella di database, digita il seguente comando in mysql> richiesta. Sostituisci database con il nome del database che vuoi controllare:
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database';
Questo comando mostra un elenco di tutte le tabelle nel database, insieme al motore utilizzato da ciascuna tabella.
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 crei una tabella in un database, puoi impostare in modo esplicito il suo motore di database (altrimenti, MySQL utilizza il motore di database predefinito durante la creazione della tabella). 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;
Allo stesso modo, 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;
Maggiori informazioni
- Per ulteriori informazioni sul motore MyISAM, visitare http://dev.mysql.com/doc/refman/5.5/en/myisam-storage-engine.html.
- Per ulteriori informazioni sul motore InnoDB, visitare http://dev.mysql.com/doc/refman/5.5/en/innodb-storage-engine.html.