Denne artikel er en introduktion til at arbejde med databasemotorer i MySQL.
For at følge nogle af procedurerne i denne artikel skal du have root-adgang til serveren.Om MySQL-databasemotorer
Databasemotorer giver MySQL den underliggende funktionalitet til at arbejde med og behandle data.
De to mest almindelige og populære MySQL-databasemotorer er MyISAM og InnoDB . MyISAM er standardmotoren til MySQL for versioner tidligere end 5.5.5 og fungerer godt i de fleste scenarier. Men afhængigt af dine behov er der situationer, hvor en anden databasemotor, såsom InnoDB, kan være det bedre valg. For eksempel understøtter InnoDB transaktioner, hvorimod MyISAM ikke gør. InnoDB understøtter også fremmednøgler, hvorimod MyISAM ikke gør det.
Hvis du har root-adgang til din server, har du fuldstændig kontrol over, hvordan og hvornår MySQL bruger de forskellige databasemotorer. Du kan ændre standarddatabasemotoren, ændre en specifik tabels databasemotor og mere.
Denne artikel antager, at du allerede ved, hvordan du får adgang til MySQL fra kommandolinjen ved hjælp af mysql program. Hvis du ikke ved, hvordan du gør dette, så læs venligst denne artikel først.Beslutning af standarddatabasemotoren
For at bestemme standarddatabasemotoren for din installation skal du skrive følgende kommando ved mysql> prompt:
SHOW ENGINES;
En liste over understøttede motorer vises sammen med en kort beskrivelse og de understøttede funktioner for hver motor. Standarddatabasemotoren er markeret med DEFAULT i Support kolonne.
Ændring af standarddatabasemotoren
Du kan ændre standarddatabasemotoren for din MySQL-installation. Når du har gjort dette, vil alle nye tabeller, du opretter, bruge den nye databasemotor (medmindre du udtrykkeligt indstiller motoren under oprettelsen af tabellen).
Følg disse trin for at ændre standarddatabasemotoren:
- Brug din foretrukne teksteditor til at åbne my.cnf fil på din server. Placeringen af my.cnf fil afhænger af din Linux-distribution:
- På CentOS og Fedora er my.cnf filen er placeret i /etc bibliotek.
- På Debian og Ubuntu er my.cnf filen er placeret i /etc/mysql bibliotek.
- I my.cnf fil, skal du finde [mysqld] sektion.
-
Tilføj eller rediger følgende linje i [mysqld] afsnit. Udskift ENGINE med navnet på den motor, du vil bruge som standard:
default-storage-engine=ENGINE
Hvis du aktiverer InnoDB-databasemotoren, skal du afhængigt af din Linux-distribution muligvis deaktivere følgende linje i my.cnf fil:
skip-innodb
For at gøre dette skal du blot tilføje et pundtegn (# ) til begyndelsen af linjen, som følger:
#skip-innodb
- Gem ændringerne i my.cnf fil, og forlad derefter teksteditoren.
-
Genstart MySQL-serveren ved at bruge den passende kommando til din Linux-distribution:
- For CentOS og Fedora, skriv:
service mysqld restart
-
For Debian og Ubuntu skal du skrive:
service mysql restart
- For CentOS og Fedora, skriv:
- For at bekræfte den nye standarddatabasemotor skal du bruge VIS MOTORER SQL-sætning som beskrevet i afsnittet Bestemmelse af standarddatabasemotoren.
Bestemmelse af en tabels aktuelle databasemotor
For at bestemme, hvilken motor en databasetabel bruger i øjeblikket, skriv følgende kommando ved mysql> hurtig. Erstat database med navnet på den database, du vil kontrollere:
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database';
Denne kommando viser en liste over hver tabel i databasen sammen med den motor, hver tabel bruger.
Ændring af en tabels databasemotor
Du kan ændre databasemotoren for en tabel, der allerede eksisterer. For eksempel viser følgende SQL-sætning, hvordan man ændrer en tabel med navnet minTabel for at bruge InnoDB-motoren:
ALTER TABLE myTable ENGINE = InnoDB;
Oprettelse af en ny tabel med en specifik databasemotor
Når du opretter en tabel i en database, kan du udtrykkeligt indstille dens databasemotor (ellers bruger MySQL standarddatabasemotoren under oprettelse af tabel). For eksempel viser følgende SQL-sætning, hvordan man opretter en tabel med navnet minTabel der bruger MyISAM-databasemotoren:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE MyISAM;
På samme måde kan du bruge følgende SQL-sætning for at oprette en tabel, der bruger InnoDB-databasemotoren:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE InnoDB;
Flere oplysninger
- For mere information om MyISAM-motoren, besøg venligst http://dev.mysql.com/doc/refman/5.5/en/myisam-storage-engine.html.
- For mere information om InnoDB-motoren, besøg venligst http://dev.mysql.com/doc/refman/5.5/en/innodb-storage-engine.html.