CoolClub pro IT odborníky

Databáze MySQL a její výhody a nevýhody: Skvělý výkon i obtížné škálování

17.01.2022

MySQL je open source, vysoce výkonný a funkčně bohatý software pro správu relačních databází. MySQL bývala první volbou pro open source databázový systém, někdy i jedinou volbou, zvolit MySQL je tedy bez debat. S rozvojem technologií máme nyní mnohem více možností, v závislosti na vašem projektu a případech použití může, ale nemusí být MySQL tou nejlepší volbou. Jak ideálně vyhodnotit pro a proti?

 

Magazín

 

Výběr správné DB se stal samostatným problémem. Každé rozhodnutí má své důsledky, zvláště ta počáteční, a výběr DB je jedním z nich. Způsob uložení dat přímo ovlivňuje způsob jejich využití. Existuje mnoho databázových produktů, například největší konkurent MySQL je PostgreSQL. Abyste si na mohli odpovědět na otázku, kterou databázi zvolit, musíte znát všechna pro a proti a rozhodnout se podle svých požadavků. V tomto příspěvku si povíme o výhodách a nevýhodách MySQL.

 

MySQL je široce používaná

Přesné číslo, kolik webových stránek používá jako databázi MySQL, sice nelze zjistit, ale můžeme odhadnout, že 80 % osobních blogů používá databázi MySQL. Každý web LAMP nebo WAMP si již MySQL osvojil.

Velké společnosti jako Google nebo Amazon nepoužívají MySQL jako primární úložiště dat, protože MySQL nezvládá obchodní transakce v takovém měřítku. Ale pro miliony malých nebo středně velkých webových stránek je MySQL obvykle nejlepší volbou.

Výběr široce používaného produktu vám poskytne mnoho výhod.

 

 

Snadná interakce

Pokud jde o relační databáze, máme na výběr z celé škály možností. Na vyšší úrovni jsou komplexní produkty na průmyslové bázi, jako je Oracle, Sql Server, které jsou bohaté na funkce a složité, potřebují specializované správce databází pro provoz, a obvykle potřebují odborné školení.

Na nižším úrovni jsou lehké produkty jako SQLite nebo embeddable databáze jako H2 databáze. Ty ani nepotřebují samostatný proces. A nepotřebují žádnou konfiguraci. MySQL se nachází někde mezi nimi. Je bohatá na funkce a zároveň nepotřebuje příliš mnoho znalostí k používání.

MySQL se snadno používá, prostě funguje hned po instalaci. Většinu úloh lze provádět v příkazovém řádku, většinou nepotřebujete grafické uživatelské rozhraní. Protože v MySQL opravdu není mnoho složitých věcí, které je třeba dělat, a pokud chcete importovat a exportovat data, nástroj mysqldump je výkonný a snadno použitelný, a tímpádem nemusíte používat nic jiného než příkazový řádek. Často stačí znát jen několik základních příkazových řádků, protože celá architektura databáze je opravdu jednoduchá a kompaktní.

 

Grafické uživatelské rozhraní

Pokud potřebujete grafické uživatelské rozhraní, můžete využít webový nástroj pro správu, jako je phpmyAdmin nebo adminer, které lze snadno získat a používat.

I začátečník si tento databázový produkt může stáhnout, nainstalovat a začít používat za méně než 15 minut. Díky jeho široké míře přijetí a obrovské uživatelské základně bylo kolem něj vyvinuto mnoho nástrojů. Poskytuje podporu pro téměř všechny programovací jazyky, z nichž nejpoužívanější je asi jazyk PHP. Jazyk PHP má zabudovanou podporu API pro interakci s MySQL.

S příručkou k MySQL a základními znalostmi SQL můžete začít pracovat a nepotřebujete školení, abyste s ním mohli pracovat. Pro vývoj webových aplikací si stačí vybrat z různých možností server LAMP, a to zdarma. Server LAMP je vyspělá a snadno použitelná platforma, začínal na ní i Facebook.

 

 

MySQL má skvělý výkon

Pro webovou aplikaci je rychlost kritická, uživatel nečeká, až se mu stránka načte, prostě odejde, kdyby vaše aplikace nereagovala rychle. Nejčastějším úzkým místem výkonu je databáze, proto je velmi důležité zvolit vysoce výkonnou databázi.

Výkon je pro každý systém správy databází zásadní, pod tolika lety vývoje můžete výkonu MySQL důvěřovat. Základní filozofií návrhu MySQL je zajistit rychlý vstup dat a také jejich rychlý výstup ven, i když to znamená obětovat některé další důležité funkce, ale pokud nejste na tyto módní funkce příliš citliví, zisk výkonu za to stojí. MySQL má obecně lepší výkon u jednoduchých dotazů, které používáme každý den, jako je vyhledávání primárních klíčů, dotazy na rozsah atd.

MySQL má dobrý výkon s rostoucí velikostí dat, od GB až po několik TB dat. Nejnovější úložný engine InnoDB, který je nyní výchozím enginem pro nové tabulky, byl přepracován tak, aby využíval výhod vícejádrových systémů. MySQL také poskytuje mezipaměť pro dotazy a tabulku v hlavní paměti, aby bylo možné využít výhod dnešního hardwaru s velkým množstvím paměťových zdrojů.

 

MySQL je software s otevřeným zdrojovým kódem

MySQL je sice pod kontrolou komerční databázové společnosti Oracle, ale stále se jedná o volně šiřitelný software s otevřeným zdrojovým kódem. Používání softwaru s otevřeným zdrojovým kódem stojí méně peněz a je bezpečnější, protože každý má přístup k jeho zdrojovému kódu a případný problém lze rychle opravit.

Pamatujte však, že neexistuje jeden produkt, který by vyhovoval všem, MySQL má také některé nevýhody.

 

Uložená procedura a spouštěč jsou omezené

V porovnání s Postgresql má MySQL málo možností, pokud potřebujete napsat uloženou proceduru a trigger. Uložená procedura umožňuje opakované použití kódu a zapouzdření. V MySQL však nemáte tolik možností jako v jiných RDBMS, například Postgresql.

 

 

MySQL se obtížně škáluje

MySQL není navržena tak, aby byla škálovatelná, a vyžaduje to velké inženýrské úsilí, aby to bylo možné. Pokud očekáváte, že vaše aplikace poroste do velkých rozměrů, musíte zvážit rozhodnutí použít jako databázi MySQL. Na začátku to může fungovat dobře, dokud ji jednoho dne nebudete potřebovat škálovat.

Možná budete chtít data rozdělit, tj. distribuovat data z jedné tabulky do více instancí a strojů, ale MySQL nepodporuje automatické rozdělování, musíte uzly udržovat ručně. Co když chcete automatické převzetí služeb při selhání? Potřebujete externí nástroj nebo si napsat vlastní skript. Potíže se škálovatelností MySQL vedou lidi k přechodu na databáze NoSQL, jako je MongoDB.

 

MySQL není určena pro data velkých rozměrů

MySQL funguje dobře ve většině malých nebo středně velkých aplikací, ale když velikost dat roste, výkon se snižuje. Když data rostou, pouze jednoduché a indexované dotazy mají dobrý výkon, u složitých dotazů se snadno zpomalí, někdy dokonce není schopna splnit požadavek v únosném časovém limitu. Je třeba pečlivě navrhnout dotaz SQL tak, aby byl stále dostupný.

 

MySQL není plně v souladu se standardem SQL

MySQL není plně v souladu se standardem SQL-92, MySQL nepodporovala některé standardní funkce a má některá rozšíření, která nepatří do standardního SQL. Pro většinu malých webových aplikací to nemusí představovat závažný problém. Ale může to být problematické, když máte velkou aplikaci a potřebujete přejít z MySQL na jiné databáze.

 

MySQL patří společnosti Oracle

MySQL je produkt s otevřeným zdrojovým kódem, ale nyní jej získala společnost Oracle, která má nad softwarem naprostou kontrolu, a mnoho vývojářů je z této situace nervózních. Někteří z nich se obrátili na MariaDB.

 

Tip! Jaké jsou celkové náklady na vlastnictví databáze?

 

 

Připravil: Radek Svoboda