Arbejde med databasemotorer

denne artikel er en introduktion til at arbejde med databasemotorer.

for at følge nogle af procedurerne i denne artikel skal du have rodadgang til serveren.

om databasemotorer

databasemotorer giver den underliggende funktionalitet til at arbejde med og behandle data.

de to mest almindelige og populære databasemotorer er MyISAM og InnoDB. MyISAM er standardmotoren for versioner tidligere end 5.5.5, og fungerer godt i de fleste scenarier. Afhængigt af dine behov er der dog situationer, hvor en anden databasemotor, såsom InnoDB, kan være det bedre valg. For eksempel understøtter InnoDB transaktioner, mens MyISAM ikke gør det. InnoDB yder også støtte til udenlandske nøgler, mens MyISAM ikke gør det.

Hvis du har root-adgang til din server, har du fuld kontrol over, hvordan og hvornår bruger de forskellige databasemotorer. Du kan ændre standarddatabasemotoren, ændre en bestemt tabels databasemotor og meget mere.

denne artikel forudsætter, at du allerede ved, hvordan du får adgang til Myskl fra kommandolinjen ved hjælp af myskl-programmet. Hvis du ikke ved, hvordan du gør dette, skal du læse denne artikel først.

bestemmelse af standarddatabasemotoren

for at bestemme standarddatabasemotoren til din installation skal du skrive følgende kommando i prompten

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 som standard i kolonnen Support.

ændring af standarddatabasemotoren

Du kan ændre standarddatabasemotoren til din installation. Når du har gjort dette, vil alle nye tabeller, du opretter, bruge den nye databasemotor (medmindre du udtrykkeligt angiver motoren under tabeloprettelsen).

følg disse trin for at ændre standarddatabasemotoren:

  1. Brug din foretrukne teksteditor til at åbne min.cnf-fil på din server. Placeringen af min.cnf-filen afhænger af din distribution:
    • på CentOS og Fedora, my.cnf-filen er placeret i / etc-mappen.
    • på Debian og Ubuntu, my.cnf-filen er placeret i mappen/etc / .
  2. i min.cnf-fil, find sektionen.
  3. Tilføj eller rediger følgende linje i afsnittet. Udskift motor med navnet på den motor, du vil bruge som standard:

    default-storage-engine=ENGINE

    Hvis du aktiverer InnoDB-databasemotoren, skal du muligvis deaktivere følgende linje i min, afhængigt af din distribution.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

  4. gem ændringerne til min.cnf-fil, og afslut derefter teksteditoren.for CentOS og Fedora, skriv:
    service mysqld restart
  5. for Debian og Ubuntu, skriv:

    service mysql restart
  6. hvis du vil bekræfte den nye Standarddatabasemotor, skal du bruge sætningen Vis motorer som beskrevet i afsnittet bestemmelse af standarddatabasemotoren.

bestemmelse af en tabels aktuelle databasemotor

for at bestemme, hvilken motor en databasetabel i øjeblikket bruger, skal du skrive følgende kommando ved prompten>. Udskift 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 findes. Følgende sætning viser f.eks., hvordan du ændrer en tabel med navnet myTable for at bruge InnoDB-motoren:

ALTER TABLE myTable ENGINE = InnoDB;

oprettelse af en ny tabel med en bestemt databasemotor

Når du opretter en tabel i en database, kan du eksplicit indstille dens databasemotor (ellers bruger Standarddatabasemotoren under oprettelse af tabel). F. eks. viser følgende erklæring, hvordan du opretter en tabel med navnet myTable, der bruger MyISAM-databasemotoren:

CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE MyISAM;

for at oprette en tabel, der bruger InnoDB-databasemotoren, kan du bruge følgende KVL-erklæring:

CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE InnoDB;

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.