Summary: I denne tutorial lærer du om forskellige MySQL-lagermotorer eller tabeltyper. Det er vigtigt at forstå funktionerne ved hver enkelt storage engine i MySQL, så du kan bruge dem effektivt for at maksimere dine databasers ydeevne.
MySQL tilbyder forskellige lagringsmotorer til sine tabeller som følger:
- MyISAM
- InnoDB
- MERGE
- MEMORY (HEAP)
- ARCHIVE
- CSV
- FEDERATED
Hver lagringsmotor har sine egne fordele og ulemper. Det er vigtigt at forstå de enkelte lagringsmotorers funktioner og vælge den mest hensigtsmæssige til dine tabeller for at maksimere databasens ydeevne. I de følgende afsnit vil vi diskutere hver storage engine og dens funktioner, så du kan beslutte, hvilken en du skal bruge.
MyISAM
MyISAM udvider den tidligere ISAM-lagringsmotor. MyISAM-tabellerne er optimeret med henblik på komprimering og hastighed. MyISAM-tabellerne er også bærbare mellem platforme og operativsystemer.
Størrelsen af MyISAM-tabellen kan være op til 256 TB, hvilket er enormt stort. Desuden kan MyISAM-tabeller komprimeres til skrivebeskyttede tabeller for at spare plads. Ved opstart kontrollerer MySQL MyISAM-tabellerne for korruption og reparerer dem endda i tilfælde af fejl. MyISAM-tabellerne er ikke transaktionssikre.
For MySQL version 5.5 er MyISAM standardlagringsmotor, når du opretter en tabel uden at angive lagringsmotoren eksplicit. Fra version 5.5 bruger MySQL InnoDB som standardlagringsmotor.
InnoDB
InnoDB-tabellerne understøtter fuldt ud ACID-kompatibel og transaktioner. De er også optimale med hensyn til ydeevne. InnoDB-tabeller understøtter fremmednøgler, commit-, rollback- og rollforward-operationer. Størrelsen af en InnoDB-tabel kan være op til 64 TB.
Lige MyISAM er InnoDB-tabellerne bærbare mellem forskellige platforme og styresystemer. MySQL kontrollerer og reparerer også InnoDB-tabellerne, hvis det er nødvendigt, ved opstart.
MERGE
En MERGE-tabel er en virtuel tabel, der kombinerer flere MyISAM-tabeller, der har en lignende struktur som én tabel. MERGE-lagringsmotoren er også kendt som MRG_MyISAM
-motoren. MERGE
-tabellen har ikke sine egne indekser; den bruger i stedet indekser for komponenttabellerne.
Med MERGE-tabellen kan du fremskynde ydeevnen, når du sammenføjer flere tabeller. MySQL tillader kun, at du kan udføre SELECT-, DELETE-, UPDATE- og INSERT-operationer på MERGE
-tabellerne. Hvis du bruger DROP TABLE
-anvisningen på et MERGE
-tabeller, fjernes kun MERGE
-specifikationen. De underliggende tabeller påvirkes ikke.
Hukommelse
Hukommelsestabellerne gemmes i hukommelsen og bruger hashindekser, så de er hurtigere end MyISAM-tabeller. Levetiden for dataene i hukommelsestabellerne afhænger af databaseserverens oppetid. Hukommelseslagringsmotoren er tidligere kendt som HEAP.
Archive
Med arkivlagringsmotoren kan du gemme et stort antal poster, som til arkiveringsformål, i et komprimeret format for at spare diskplads. Arkivlagringsmotoren komprimerer en post, når den indsættes, og dekomprimerer den ved hjælp af zlib-biblioteket, når den læses.
Arkivtabellerne tillader kun INSERT- og SELECT-anvisninger. ARCHIVE
-tabellerne understøtter ikke indekser, så det er nødvendigt med en fuld bordscanning for at læse rækker.
CSV
CSCV-lagringsmotoren gemmer data i CSV-filformat (comma-separated values). En CSV-tabel giver en praktisk måde at migrere data til ikke-SQL-programmer som f.eks. regnearkssoftware.
CSV-tabellen understøtter ikke NULL-datatatype. Desuden kræver læseoperationen en fuld tabelgennemgang.
FEDERATED
Med FEDERATED
lagringsmotoren kan du administrere data fra en ekstern MySQL-server uden at bruge klynge- eller replikeringsteknologi. Det lokale fødererede bord gemmer ingen data. Når du forespørger om data fra et lokalt fødereret bord, hentes dataene automatisk fra de eksterne fødererede tabeller.
Valg af MySQL-tabeltyper
Du kan downloade følgende tjekliste for at vælge den mest passende lagringsmotor eller tabeltype ud fra forskellige kriterier.
MySQL Storage Engines funktionsoversigt
I denne vejledning har du lært forskellige storage engines eller tabeltyper, der er tilgængelige i MySQL.
- Var denne vejledning nyttig?
- JaNej