Sammanfattning: I den här handledningen kommer du att lära dig olika MySQL-lagringsmotorer eller tabelltyper. Det är viktigt att förstå funktionerna hos varje lagringsmotor i MySQL så att du kan använda dem effektivt för att maximera prestandan hos dina databaser.
MySQL tillhandahåller olika lagringsmotorer för sina tabeller enligt följande:
- MyISAM
- InnoDB
- MERGE
- MEMORY (HEAP)
- ARCHIVE
- CSV
- FEDERATED
Varje lagringsmotor har sina egna fördelar och nackdelar. Det är viktigt att förstå varje lagringsmotors egenskaper och välja den lämpligaste för dina tabeller för att maximera databasens prestanda. I följande avsnitt kommer vi att diskutera varje lagringsmotor och dess funktioner så att du kan bestämma vilken motor du ska använda.
MyISAM
MyISAM utökar den tidigare lagringsmotorn ISAM. MyISAM-tabellerna är optimerade för komprimering och hastighet. MyISAM-tabellerna är också portabla mellan olika plattformar och operativsystem.
Storleken på MyISAM-tabellen kan vara upp till 256 TB, vilket är enormt. Dessutom kan MyISAM-tabeller komprimeras till skrivskyddade tabeller för att spara utrymme. Vid start kontrollerar MySQL MyISAM-tabellerna för att se om de är korrupta och reparerar dem till och med i händelse av fel. MyISAM-tabellerna är inte transaktionssäkra.
För MySQL version 5.5 är MyISAM standardlagringsmotor när du skapar en tabell utan att ange lagringsmotor explicit. Från och med version 5.5 använder MySQL InnoDB som standardlagringsmotor.
InnoDB
InnoDB-tabellerna har fullt stöd för ACID-kompatibla och transaktioner. De är också optimala för prestanda. InnoDB-tabeller har stöd för främmande nycklar, commit, rollback, roll-forward-operationer. Storleken på en InnoDB-tabell kan vara upp till 64 TB.
Likt MyISAM är InnoDB-tabellerna portabla mellan olika plattformar och operativsystem. MySQL kontrollerar och reparerar även InnoDB-tabeller vid behov vid uppstart.
MERGE
En MERGE-tabell är en virtuell tabell som kombinerar flera MyISAM-tabeller som har en liknande struktur till en tabell. MERGE-lagringsmotorn är också känd som MRG_MyISAM
-motorn. MERGE
-tabellen har inga egna index utan använder istället index för komponenttabellerna.
Med hjälp av MERGE-tabellen kan du snabba upp prestandan när du sammanfogar flera tabeller. MySQL tillåter endast att du utför SELECT-, DELETE-, UPDATE- och INSERT-operationer på MERGE
-tabellerna. Om du använder DROP TABLE
-angivelsen på en MERGE
-tabell tas endast MERGE
-specifikationen bort. De underliggande tabellerna påverkas inte.
Minne
Minnestabellerna lagras i minnet och använder hashindex så att de är snabbare än MyISAM-tabeller. Livslängden för data i minnestabellerna beror på databasserverns drifttid. Minneslagringsmotorn är tidigare känd som HEAP.
Archive
Med arkivlagringsmotorn kan du lagra ett stort antal poster, som för arkiveringsändamål, i ett komprimerat format för att spara diskutrymme. Arkivlagringsmotorn komprimerar en post när den läggs in och dekomprimerar den med hjälp av zlib-biblioteket när den läses.
Arkivtabellerna tillåter endast INSERT- och SELECT-anvisningar. ARCHIVE
-tabellerna har inte stöd för index, så det krävs en fullständig tabellskanning för att läsa rader.
CSV
CServeringsmotorn för CSV-lagring lagrar data i CSV-filformat (comma-separated values). En CSV-tabell ger ett bekvämt sätt att migrera data till icke-SQL-program som t.ex. kalkylprogram.
CSV-tabellen har inte stöd för datatypen NULL. Dessutom kräver läshanteringen en fullständig tabellskanning.
FEDERATED
Med FEDERATED
lagringsmotorn kan du hantera data från en fjärr MySQL-server utan att använda kluster- eller replikeringsteknik. Den lokala federerade tabellen lagrar inga data. När du frågar efter data från en lokal federerad tabell hämtas data automatiskt från de federerade fjärrtabellerna.
Välja MySQL tabelltyper
Du kan hämta följande checklista för att välja den lämpligaste lagringsmotorn, eller tabelltypen, baserat på olika kriterier.
MySQL Storage Engines Feature Summary
I den här handledningen har du lärt dig olika lagringsmotorer eller tabelltyper som finns tillgängliga i MySQL.
- Har den här handledningen varit till hjälp?
- JaNej