Ilustrace Walker Cahall
Cílové publikum
Tento článek předpokládá, že alespoň částečně znáte databáze a některé terminologie týkající se jejich funkcí.
Úvod
Databáze zálohují každou aplikaci a existuje mnoho možností. MySQL je již dlouho populární volbou open source; MariaDB a Percona jsou však dvě hlavní kódové větve, které mohou nahradit MySQL vylepšenými funkcemi. Tento článek nabízí široké srovnání těchto tří.
MySQL
Obrázek:MySQL / licencováno pod CC BY-SA 3.0
MySQL je široce známý, velmi oblíbený open source systém pro správu relačních databází (často zkráceně RDBMS). Byla vyvinuta jako vysoce dostupná a spolehlivá databáze pro webové aplikace v 90. letech minulého století. Přestože je open source, je ve vlastnictví společnosti Oracle, která jej nabízí jako bezplatnou komunitní edici pod licencí GPL (GNU General Public License) a jako komerčně licencovanou verzi. Verze Oracle MySQL je běžná instalace na mnoha hostitelích, součást klasických zásobníků LAMP a WAMP a výchozí databáze pro WordPress.
Jeho síla spočívá v jeho dlouhé životnosti. Kódová základna je velmi stabilní a spolehlivá pro druh webových aplikací, pro které byla navržena. Existuje velká komunita uživatelů a správců MySQL a v důsledku toho velká sbírka informací publikovaných pro MySQL, a to jak na webu, tak v tisku.
Jeho slabiny ve srovnání s ostatními dvěma databázemi spočívají v jeho správě. Mnozí v komunitě open source považují Oracle za blokující sílu open source povahy původního projektu. Kvůli modelu duálních licencí také některé aplikace vyžadují komerční licenci.
MySQL vs MariaDB/Percona
Když MySQL získal Sun a poté Oracle, skupiny odešly, aby začaly s vlastními větvemi kódu MySQL. To nás přivádí k MariaDB a Percona. Oba jsou navrženy tak, aby nahradily MySQL. Aplikace, které pracují s MySQL, by také měly fungovat s oběma těmito vidlicemi. Navzdory tomu, že jsou konkurenty, každý fork čerpá z otevřeného zdrojového kódu toho druhého. Například MariaDB nabízí engine XtraDB od Percony. Percona převzala některé optimalizace a vylepšení fondu vláken z MariaDB. Oba se oproti základnímu MySQL zlepšili, včetně opravy poddotazů.
MariaDB
Obrázek:MariaDB / Licence pod CC BY-SA 3.0
Vidlice MariaDB se přiklání k rozšíření šíře možností MySQL a je méně konzervativní v přidávání nových funkcí než Percona. MariaDB pokročila s optimalizací dotazů. Je to potenciálně lepší volba, pokud nemůžete určit, jaké dotazy váš projekt pravidelně potřebuje. Některé další funkce, které odlišují MariaDB, zahrnují následující:
- MariaDB obsahuje větší pole úložných enginů než základní MySQL nebo Percona, včetně možnosti NoSQL s Cassandrou. Volitelně zahrnuje také XtraDB společnosti Percona.
- Od verze 10.1 nabízí MariaDB šifrování databáze na disku.
- MariaDB nabízí funkce škálovatelnosti včetně replikace z více zdrojů, která umožňuje jednomu serveru replikovat z několika zdrojů.
- Interakce globálních ID transakcí mezi MariaDB a MySQL může vyžadovat pečlivou implementaci, pokud plánujete komplexní schéma replikace překlenující varianty MySQL. Například je možné replikovat z MySQL 5.6 do MariaDB 10.X, ale ne naopak.
Celkově je MariaDB vyspělou budoucí větví MySQL, která si klade za cíl nabízet nové funkce a vylepšení pro databázi. Je vhodný pro velké víceserverové hostingové aplikace VPS, zejména ty s měnícími se vzory dotazů, které mohou využívat optimalizátor MariaDB.
Server Percona
Percona se soustředila na velmi náročné aplikace s vlastní vysoce výkonnou alternativou k úložnému enginu InnoDB s názvem XtraDB, včetně instrumentačních nástrojů k jeho vyladění. Jejich funkce směřují ke zlepšení výkonu, dostupnosti a škálovatelnosti u největších databází s nejvyšší propustností. Percona na svém webu tvrdí, že je z hlediska kompatibility blíže k základnímu kódu MySQL a je konzervativnější než MariaDB. Mezi další funkce upřednostňující Percona patří následující:
- Ve snaze o výkon nabízí Percona více čítačů a diagnostiky pro měření výkonu a vyladění databáze.
- Percona má vylepšení škálovatelnosti pro velké databáze, včetně některých funkcí v jejich bezplatném Serverovém produktu, které jsou dostupné pouze na podnikové úrovni MySQL.
- Percona má také další nástroje nad rámec DB engine včetně XtraDB Cluster a XtraBackup utility.
Stejně jako MariaDB je Percona vyspělou open-source větví MySQL. Zaměřují se spíše na výkon největších a nejnáročnějších databází s nástroji k dosažení a udržení tohoto výkonu.
Co je tedy vlastně lepší?
Jako ve většině věcí v technice je odpověď „záleží“. Velká část debaty se zdá být spíše dvoufázovým argumentem než třístrannou bitvou. První fází je MySQL versus jedna z jeho náhrad. Musíte se rozhodnout, zda vůbec potřebujete změnu. Vidlice vylepšují základní MySQL vylepšeními výkonu a dalšími funkcemi a nástroji. Výkon je tím větší, čím větší je vaše databáze, takže u malých databází je méně pravděpodobné, že tyto výhody ve větvích uvidí. Ale mohou existovat i jiné důvody, proč se vydat po náhradě, jako je licencování nebo flexibilita dat. Pokud se rozhodnete pro drop-in, pak se diskuse stočí ke kterému.
Bylo by příliš snadné podívat se i na výše uvedené srovnání a říci, že MariaDB se nestará o výkon nebo že optimalizátor v Percona je podprůměrný. To vůbec není pravda. Oba forky excelují na základní databázové úrovni. Když se dostanete na okraj obálky, více se odlišují.
Co je tedy důležitější? Pokud se jedná o možnost ukládat flexibilní typy dat napříč řadou různých zdrojů, podívejte se nejprve na MariaDB. Pokud máte větší databázi, která stále vyžaduje rychlý výkon, začněte hledat pomocí Percona. Přesto druhou větev plně neignorujte. Některé z jejich nástrojů, díky společnému kořenu MySQL, mohou pracovat s kteroukoli větví a mohly by být právě tím řešením, které potřebujete.
Pokud jste přerostli MySQL a chcete sáhnout do jednoho z forků, ale nejste na prahu velikosti nebo flexibility, pak se rozhodnutí zdá být jedním z nejlepších. Která společnost vám nabízí služby nebo nástroje, které byste stejně použili?
Stále si nejste jisti, nebo si chcete přečíst více do hloubky? Podívejte se na některá z následujících srovnání, která dali dohromady lidé z MariaDB a Percony.
- Porovnání funkcí Percona
- Funkce MariaDB vs. MySQL
- Funkce MariaDB 10