Souhrn: v tomto kurzu se seznámíte s různými úložnými motory nebo typy tabulek MySQL. Je nezbytné porozumět vlastnostem jednotlivých úložných motorů v MySQL, abyste je mohli efektivně používat a maximalizovat výkon svých databází.
MySQL poskytuje pro své tabulky následující různé úložné motory:
- MyISAM
- InnoDB
- MERGE
- MEMORY (HEAP)
- ARCHIVE
- CSV
- FEDERATED
Každý úložný motor má své výhody a nevýhody. Je velmi důležité porozumět vlastnostem jednotlivých úložných strojů a vybrat pro své tabulky ten nejvhodnější, abyste maximalizovali výkon databáze. V následujících částech se budeme zabývat jednotlivými úložnými stroji a jejich vlastnostmi, abyste se mohli rozhodnout, který z nich použít.
MyISAM
MyISAM rozšiřuje dřívější úložný stroj ISAM. Tabulky MyISAM jsou optimalizovány pro kompresi a rychlost. Tabulky MyISAM jsou také přenositelné mezi platformami a operačními systémy.
Velikost tabulky MyISAM může být až 256 TB, což je obrovská velikost. Kromě toho lze tabulky MyISAM komprimovat do tabulek určených pouze pro čtení a ušetřit tak místo. MySQL při spuštění kontroluje tabulky MyISAM, zda nejsou poškozené, a v případě chyb je dokonce opravuje. Tabulky MyISAM nejsou bezpečné pro transakce.
Před verzí MySQL 5.5 je MyISAM výchozím úložným enginem, pokud vytvoříte tabulku bez výslovného zadání úložného enginu. Od verze 5.5 používá MySQL jako výchozí ukládací engine InnoDB.
InnoDB
Tabulky InnoDB plně podporují ACID-compliant a transakce. Jsou také optimální z hlediska výkonu. Tabulky InnoDB podporují cizí klíče, operace commit, rollback, roll-forward. Velikost tabulky InnoDB může být až 64 TB.
Stejně jako MyISAM jsou tabulky InnoDB přenositelné mezi různými platformami a operačními systémy. MySQL také kontroluje a v případě potřeby opravuje tabulky InnoDB při spuštění.
MERGE
Tabulka MERGE je virtuální tabulka, která spojuje více tabulek MyISAM, které mají podobnou strukturu jako jedna tabulka. Mechanismus ukládání MERGE je také známý jako MRG_MyISAM
. Tabulka MERGE
nemá vlastní indexy, místo toho používá indexy složkových tabulek.
Pomocí tabulky MERGE můžete urychlit výkon při spojování více tabulek. MySQL umožňuje provádět operace SELECT, DELETE, UPDATE a INSERT pouze nad tabulkami MERGE
. Pokud použijete příkaz DROP TABLE
na tabulce MERGE
, odstraní se pouze specifikace MERGE
. Podkladové tabulky nebudou ovlivněny.
Paměťové
Paměťové tabulky jsou uloženy v paměti a používají hash indexy, takže jsou rychlejší než tabulky MyISAM. Životnost dat paměťových tabulek závisí na době provozu databázového serveru. Paměťový úložný stroj je dříve známý jako HEAP.
Archiv
Archivní úložný stroj umožňuje ukládat velké množství záznamů, které pro účely archivace, do komprimovaného formátu, aby se ušetřilo místo na disku. Mechanismus archivního úložiště komprimuje záznam při jeho vložení a dekomprimuje jej pomocí knihovny zlib při jeho čtení.
Archivní tabulky umožňují pouze příkazy INSERT a SELECT. Tabulky ARCHIVE
nepodporují indexy, proto je pro čtení řádků vyžadováno prohledání celé tabulky.
CSV
Uložiště CSV ukládá data ve formátu souboru CSV (comma-separated values). Tabulka CSV přináší pohodlný způsob migrace dat do jiných aplikací než SQL, například do tabulkového softwaru.
Tabulka CSV nepodporuje datový typ NULL. Operace čtení navíc vyžaduje skenování celé tabulky.
FEDERATED
Úložiště FEDERATED
umožňuje spravovat data ze vzdáleného serveru MySQL bez použití technologie clusteru nebo replikace. Místní federovaná tabulka neukládá žádná data. Při dotazování na data z místní sdružené tabulky se data automaticky stáhnou ze vzdálených sdružených tabulek.
Výběr typů tabulek MySQL
Můžete si stáhnout následující kontrolní seznam a vybrat nejvhodnější úložný engine, resp. typ tabulky, na základě různých kritérií.
Shrnutí funkcí úložných motorů MySQL
V tomto kurzu jste se seznámili s různými úložnými motory nebo typy tabulek dostupnými v MySQL.
- Pomohl vám tento kurz?
- AnoNe