den här artikeln är en introduktion till att arbeta med databasmotorer i MySQL.
om MySQL-databasmotorer
databasmotorer ger den underliggande funktionaliteten för MySQL att arbeta med och bearbeta data.
de två vanligaste och mest populära 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. Beroende på dina behov finns det dock 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 utländska 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.
bestämma standarddatabasmotorn
för att bestämma standarddatabasmotorn för din installation, skriv följande kommando vid MySQL>:
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 som standard i supportkolumnen.
ändra standarddatabasmotorn
Du kan ändra standarddatabasmotorn för din MySQL-installation. När du har gjort det kommer alla nya tabeller som du skapar att använda den nya databasmotorn (om du inte uttryckligen ställer in motorn under tabellskapandet).
för att ändra standarddatabasmotorn, följ dessa steg:
- Använd din önskade textredigerare för att öppna my.cnf-fil på din server. Platsen för min.cnf-fil beror på din Linux-distribution:
- på CentOS och Fedora, my.cnf-filen finns i katalogen / etc.
- på Debian och Ubuntu, my.cnf-filen finns i katalogen/etc / mysql.
- I mitt.cnf-fil, leta reda på avsnittet.
-
Lägg till eller ändra följande rad i avsnittet. Ersätt motorn med namnet på motorn som du vill använda som standard:
default-storage-engine=ENGINE
Om du aktiverar InnoDB-databasmotorn, beroende på din Linux-distribution kan du behöva inaktivera följande rad i my.cnf-fil:
skip-innodb
för att göra detta, lägg bara till ett pundtecken ( # ) i 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 SQL-satsen visa motorer som beskrivs i avsnittet bestämma standarddatabasmotor.
bestämma en tabells nuvarande databasmotor
för att bestämma vilken motor en databastabell för närvarande använder, Skriv följande kommando vid MySQL> prompten. 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. Följande SQL-sats visar till exempel hur du ä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 skapandet av tabeller). Följande SQL-sats visar till exempel hur du 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;
Simiarly, för att skapa en tabell som använder InnoDB-databasmotorn kan du använda följande SQL-sats:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE InnoDB;