Den här artikeln är en introduktion till att arbeta med databasmotorer i MySQL.
För att följa några av procedurerna i den här artikeln måste du ha root-åtkomst till servern.Om MySQL-databasmotorer
Databasmotorer tillhandahåller den underliggande funktionaliteten för MySQL att arbeta med och bearbeta data.
De två vanligaste och populäraste MySQL-databasmotorerna är MyISAM och InnoDB . MyISAM är standardmotorn för MySQL för versioner tidigare än 5.5.5, och fungerar bra i de flesta scenarier. Men beroende på dina behov finns det situationer där en annan databasmotor, som InnoDB, kan vara det bättre valet. Till exempel stöder InnoDB transaktioner, medan MyISAM inte gör det. InnoDB ger också stöd för främmande nycklar, medan MyISAM inte gör det.
Om du har root-åtkomst till din server har du fullständig kontroll över hur och när MySQL använder de olika databasmotorerna. Du kan ändra standarddatabasmotorn, ändra en specifik tabells databasmotor och mer.
Den här artikeln förutsätter att du redan vet hur du får åtkomst till MySQL från kommandoraden med mysql program. Om du inte vet hur du gör detta, läs den här artikeln först.Bestämma standarddatabasmotorn
För att fastställa standarddatabasmotorn för din installation, skriv följande kommando vid mysql> uppmaning:
SHOW ENGINES;
En lista över motorer som stöds visas tillsammans med en kort beskrivning och de funktioner som stöds för varje motor. Standarddatabasmotorn är markerad med DEFAULT i Support kolumn.
Ändra standarddatabasmotorn
Du kan ändra standarddatabasmotorn för din MySQL-installation. När du har gjort detta kommer alla nya tabeller som du skapar att använda den nya databasmotorn (såvida du inte uttryckligen ställer in motorn under tabellskapandet).
För att ändra standarddatabasmotorn, följ dessa steg:
- Använd din föredragna textredigerare för att öppna my.cnf filen på din server. Platsen för my.cnf fil beror på din Linux-distribution:
- På CentOS och Fedora, my.cnf filen finns i /etc katalog.
- På Debian och Ubuntu, my.cnf filen finns i /etc/mysql katalog.
- I my.cnf fil, leta reda på [mysqld] avsnitt.
-
Lägg till eller ändra följande rad i [mysqld] sektion. Byt ut ENGINE med namnet på motorn som du vill använda som standard:
default-storage-engine=ENGINE
Om du aktiverar InnoDB-databasmotorn kan du, beroende på din Linux-distribution, behöva inaktivera följande rad i my.cnf fil:
skip-innodb
För att göra detta, lägg bara till ett pundtecken (# ) till början av raden, enligt följande:
#skip-innodb
- Spara ändringarna i my.cnf fil och avsluta sedan textredigeraren.
-
Starta om MySQL-servern med lämpligt kommando för din Linux-distribution:
- För CentOS och Fedora, skriv:
service mysqld restart
-
För Debian och Ubuntu, skriv:
service mysql restart
- För CentOS och Fedora, skriv:
- För att bekräfta den nya standarddatabasmotorn, använd VISA MOTORER SQL-sats som beskrivs i avsnittet Fastställa standarddatabasmotorn.
Bestämma en tabells aktuella databasmotor
För att avgöra vilken motor en databastabell använder för närvarande, skriv följande kommando vid mysql> prompt. Ersätt databas med namnet på databasen som du vill kontrollera:
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database';
Detta kommando visar en lista över varje tabell i databasen, tillsammans med motorn varje tabell använder.
Ändra en tabells databasmotor
Du kan ändra databasmotorn för en tabell som redan finns. Till exempel visar följande SQL-sats hur man ändrar en tabell med namnet myTable för att använda InnoDB-motorn:
ALTER TABLE myTable ENGINE = InnoDB;
Skapa en ny tabell med en specifik databasmotor
När du skapar en tabell i en databas kan du uttryckligen ställa in dess databasmotor (annars använder MySQL standarddatabasmotorn under tabellskapandet). Till exempel visar följande SQL-sats hur man skapar en tabell med namnet myTable som använder MyISAM-databasmotorn:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE MyISAM;
På liknande sätt kan du använda följande SQL-sats för att skapa en tabell som använder InnoDB-databasmotorn:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE InnoDB;
Mer information
- För mer information om MyISAM-motorn, besök http://dev.mysql.com/doc/refman/5.5/en/myisam-storage-engine.html.
- För mer information om InnoDB-motorn, besök http://dev.mysql.com/doc/refman/5.5/en/innodb-storage-engine.html.