Rozdíly - Výhody a nevýhody - MyISAM vs InnoDB v MySQL

Napsáno: 02.11.2015    


Kategorie: PC  -  MySQL





Název ENGINE v DB Výrobce/Prodejce License Podpora transakcí Stálý aktivní vývoj
InnoDB Oracle Free-GPL Ano Ano
MyISAM Oracle Free-GPL Ne Ne

 

Vysvětlění stručně a jasně

ENGINE je v podstatě motor , který využívá databáze. V podstatě a zkratce pokud nepoužíváte transakce je MyISAM asi o 20% rychlejší a tudíž se vyplatí. pokud transakce používáte, tak MyISAM ani nemůžete používat. Přehled a srovnání ostatních ENGINů v MySQL najdete zde.

Co znamená zkratka GPL?

GPL znamená General Public License, což se dá do češtiny přeložit jako Všeobecná veřejná licence aneb svobodný software. Nejrozšířenější takovou licencí je GNU General Public License, zkráceně GNU GPL vyslovujeme jako [gnú dží pí el]. Toto může být ještě dále zkráceno na GPL, pokud je z kontextu zřejmé, že se mluví o té GPL z projektu GNU. Právě tuto licenci může začít postrádat InnoDB,.. viz níže.

Typ InnoDB

Tyto tabulky používají transakce a lze využívat příkazy BEGIN, COMMIT a ROLLBACK. Jsou optimalizovány pro relativně větší rychlost dotazů INSERT a UPDATE oproti typu MyISAM a pro práci s velkým objemem dat. Specialitou InnoDB oproti mnohým dalším transakčním uložištím je schopnost zamykání záznamů na úrovni řádků.

Budoucnost InnoDB v MySQL je však v současné době nejistá. InnoDB totiž nevyvíjí samotná společnost MySQL AB, ale společnost Innobase Oy Inc., kterou před nedávnem koupila Oracle a panují zde obavy, že InnoDB přestane být volným produktem.

Ve stručnosti o transakcích. U některých důležitých změn v databázi musíme zabezpečit, že se celá sada dotazů vykoná celá anebo se nestane nic. Nesmí se stát, že v polovině příkazů dojde k chybě a nebude vše dokončeno. V té situaci jsou řešením transakce. Transakci zahájíme příkazem BEGIN, vykonáme příkazy a pak celou transakci buď potvrdíme příkazem COMMIT, anebo celou zrušíme příkazem ROLLBACK. Až do potvrzení transakce se změny pro ostatní databázové klienty nijak neprojeví.

Typ MyISAM

Nejpoužívanější typ tabulek v systému MySQL. Poprvé se objevil v MySQL 3.23.0. Tyto tabulky nepodporují transakce, ale na druhou stranu jsou velmi rychlé a typ MyISAM je optimalizován pro dotazy SELECT. Typ MyISAM se dále rozděluje do tří podtypů.

  • Statické tabulky se vyznačují tím, že neobsahují žádný datový typ s proměnnou délkou (varchar, text, blob a jejich varianty). V tom případě je pro každý údaj v tabulce pevně vyhrazené místo a nedochází ke fragmentaci. I proto jsou všechny dotazy na tuto tabulku mnohem rychlejší.
  • Dynamické tabulky obsahují nějaké datové typy s proměnnou délkou a každý takový údaj musí navíc obsahovat informace o své délce a o svém rozmístění. Dochází také z fragmentaci částí záznamu a opět je navíc na ně třeba uchovávat odkazy..








Diskuze ke článku
( Celkem: 0 )
Jméno:   
E-mail:   
Vzkaz: 
Aktivní odkaz přidáte takto:
link[http://www.adresa.cz]
Antispam:   
   



 
 
Zatím není vložen žádný komentář.
 
 

2013 © PiDi Soft |  Mapa stránek |  Odkazy