Porovnanie MariaDB a MySQL


  • Zdieľať na Google+

Zdravá konkurencia vie priniesť veľa dobrého. Stačí sa pozrieť na Apple a Samsung, či Bugatti a Koenigsegg. Spoločnosti medzi sebou náruživo súťažia, no koniec koncov má z toho často profit aj zákazník. Preto sa odčlenila aj MariaDB od MySQL. A v tomto článku zistíte, ktorá z nich je pre vás tá pravá.

Databáza všeobecne – čo to je

Databáza vo všeobecnosti je definovaná ako organizovaná zbierka dát, uložená a dostupná elektronicky. Pre prácu s ňou sa využívajú tzv. DBMS systémy (z anglického database managment system), ktoré používa koncový používateľ a ktoré zároveň interagujú s databázou samotnou a ďalšími aplikáciami. Poznáme 4 najčastejšie príkazy pre prácu s databázou – insert, search, update a delete. Na vykonanie týchto príkazov je nutné použiť SQL jazyk (structured query language) a v ňom napísať príkaz. Práve od tejto skratky pochádza názov MySQL, kdežto pri MariaDB sa názov odvádza priamo od databázy.

Podobnosti medzi MariaDB a MySQL

MySQL je open-source relačná databáza. Open source znamená, že jej zdrojový kód je voľne prístupný každému, kto oň má záujem a môže ho upravovať podľa svojich predstáv, či šíriť svoje distribúcie ďalej bez súhlasu autora. Relačná databáza na druhej strane znamená, že jej obsah je štruktúrovaný a uložený v tabuľkách. Každá tabuľka obsahuje určitý konečný počet stĺpcov – v nich je taktiež konečný počet riadkov. Každý záznam je jeden riadok tabuľky, ktorý je identifikovaný svojím primárnym kľúčom. Pre zachovanie integrity nad dvoma tabuľkami sa tento kľúč používa ako cudzí kľúč – jednoznačný identifikátor záznamu.

MariaDB sa v istom momente odčlenila od MySQL. Práve toto je dôvod, prečo sa všetky štruktúry, ktoré boli poskladané v MySQL, dajú používať aj v MariaDB. Táto unikátna vlastnosť zabezpečuje kompatibilitu databáz pri migrácii z MySQL na MariaDB a späť bez toho, aby sme museli čokoľvek zmeniť. V skratke to znamená, že dáta i definície tabuliek sú plne kompatibilné, rovnako aj klientské protokoly, štruktúry, či API (application programming interface). Samozrejme i pripojenie na databázu sa dá použiť v rovnakom tvare.

Aké verzie týchto databáz poznáme

MariaDB sa snažila ísť v stopách MySQL aj čo sa týka verzií. Preto vznikla MariaDB 5.5, ktorá vo svojej podstate korešpondovala s MySQL 5.7. Niekoľko verzií sa darilo udržať tento trend, avšak pri najnovších verziách už vidíme rozdiel. MySQL prešla na označenie 8.x. No MariaDB spravila vo svojom vývoji väčší skok a preto sa rozhodla pre pokračovanie ako 10.x.

Ako sa líšia ich SQL príkazy

SQL príkazy pri týchto dvoch typoch databáz sú úplne totožné. Uvedieme niekoľko príkladov, ktoré sú funkčné nad databázami. Pre tieto ilustračné účely uvažujeme o tabuľke tabulka, ktorá v sebe obsahuje záznamy o ľuďoch ako ich meno, priezvisko a vek:

Operácia MySQL MariaDB
Výber záznamu / záznamov SELECT * from tabulka; SELECT * from tabulka;
Aktualizácia záznamu UPDATE tabulka SET priezvisko=’Jablko’ WHERE meno=’Jan’; UPDATE tabulka SET priezvisko=’Jablko’ WHERE meno=’Jan’;
Zmazanie záznamu DELETE FROM tabulka WHERE vek=40; DELETE FROM tabulka WHERE vek=40;
Vloženie záznamu INSERT INTO tabulka (meno, priezvisko, vek) VALUES (‘Jan’, ’Mrkva’, 38); INSERT INTO tabulka (meno, priezvisko, vek) VALUES (‘Jan’, ’Mrkva’, 38);

V čom spočíva rozdiel

Odpoveď sa skrýva v histórii MySQL. V roku 2010 bola odkúpená spoločnosťou Oracle corporation. V tom čase jeden z pôvodných vývojárov, menom Michael “Monty” Widenius, nadobudol pocit, že pre Oracle nastane konflikt záujmov medzi ich databázou, ktorú predávali a open source MySQL. Preto sa na základe tejto akvizície rozhodol odísť – a vytvoriť tak základ MariaDB.

Odčlenil sa teda od pôvodnej MySQL a novému typu databázy dal meno po svojej dcére, Márii. Začala sa zdravá konkurencia medzi MySQL a MariaDB, ktorá viedla k šikovným zlepšeniam v oblasti databáz. Vzhľadom na to, že MySQL je korporátny projekt, stále zotrváva vďaka ich financiám ako líder v oblasti databáz. Brian Wheeler pre DevOps.com prehlásil, že podľa neho Oracle pod svojimi krídlami spomalí vývoj MySQL, aby dal priestor ich vlastnej komerčnej databáze. Naopak MariaDB má od za začiatku jasne oddelený open source a komerčný model, aby tento konflikt nenastal.

MariaDB obsahuje sama o sebe všetky populárne open source enginy (najmä pre vyhľadávanie), má niekoľko vylepšení v oblasti rýchlosti a začala podporovať niektoré doplnky, ktoré sa do MySQL inštalovať nedajú. Jej výhodou je tiež počet desatinných miest, ktorý je až 38 miest za desatinnou čiarkou, mikrosekundová presnosť v process liste, či mnohé JSON funkcie. Mnohé dynamické funkcie vykonávané nad položkami v tabuľkách sa dajú vykonávať len v MariaDB. Ako príklad spomenieme COLUMN_ADD, COLUMN_CREATE, COLUMN_EXIST. Samozrejme ide o pokročilejšie funkcie pre prácu nad databázou, ktoré využívajú prevažne používatelia intenzívne pracujúci nad databázami s náročnými query príkazmi s rôznymi agregáciami. Zdá sa, že MySQL je o trochu napred vo vývoji a oproti MariaDB obsahuje viac funkcionality, najmä v geografickej oblasti, kde zvládne príkazy ako DISTANCE, ST_GeoHash, ale aj ST_PointFromGeoHash, či ST_IsValid.

Komerčná podpora

Pri MySQL je to zrejmé. Akvizícia databázy firmou Oracle pokryla aj tento aspekt a pri riešení problémov odpovedá na otázky priamo Oracle s jeho pracovníkmi počas celého týždňa. Tím, ktorý sa stará o MySQL, sa skladá nielen z expertov na tento typ databázy, ale aj z vývojárov, aby sa pre klientov zabezpečila čo najlepšia možná pomoc v prípade núdze. Vývoj pokračuje práve vďaka týmto expertom, zamestnaných firmou Oracle.

MariaDB helpdesk sa skladá z expertov na oba typy databáz. Ponúkajú taktiež 24/7 podporu a dokonca sa dá zakúpiť tzv. riešenie pre biznis, ktoré zabezpečí okamžitú pomoc pre kritické projekty. Zakladatelia MariaDB veria, že takýto verejný model je prospešný pre vývoj, pretože samotní používatelia môžu nahrať (samozrejme po revízii) svoje opravy do databázy a prispieť k vyriešeniu bezpečnostných problémov.

Dokumentácia

Pri MySQL táto povinnosť spadá pod Oracle. MariaDB je viac otvorená pre ľudí, čo má klady aj zápory. Dokumentáciu tvoria prevažne ľudia z MariaDB Foundation, no ostatní sú taktiež schopní podieľať sa na tvorbe dokumentácie, či vývoji samotnej MariaDB.

Na ktoré jazyky možno databázy pripojiť

K obom typom databáz je možné pripojiť sa zo všetkých moderných programovacích jazykov, no predsa sú tu menšie rozdiely. Medzi spoločné podporované konektory patria C, C++, Delphi, Java, Python, PHP, či Ruby.
MySQL je naviac možné napojiť na Erlang, Go, Lisp, .NET, Node.js a niekoľko ďalších. MariaDB sa vám podarí napojiť na ADO.NET, či Perl.

Záver, alebo ktorú databázu použiť

Nie je možné jednoznačne prehlásiť, ktorá databáza je pre vás lepšia. Je potrebné pozrieť sa, pre ktorý typ databázy bola napísaná aplikácia, ktorú chcete použiť. Ak sa stane, že aplikácia nevyžaduje pre svoj chod konkrétny typ databázy, otázka sa vracia. Obe majú svoje výhody a pri rozhodovaní sa je potrebné zvážiť, či vyžadujete funkcie obsiahnuté v MySQL. Ak nie, bude zrejme vhodnejšia MariaDB, najmä kvôli skutočnosti, že na základe jej modelu bude takmer s istotou podporovaná ešte dlhú dobu. Pri databáze MySQL a jej korporátnom modele existuje riziko spomalenia vývoja na úkor ich komerčnej databázy. Ak sa vám páči viac korporátny model MySQL a dôverujete mu, zvoľte túto cestu. Ak však veríte v silu davu spoločne tvoriaceho MariaDB, samozrejme neurobíte krok vedľa ani pri zakliknutí MariaDB 10.1 ako nového typu vašej databázy.

Nateraz sa však na tieto aspekty netreba pozerať. A preto rozhodnutie, či MySQL alebo MariaDB, môžete pokojne spraviť podľa toho, ktorý názov sa vám páči viac.

Komentáre