====== MySQL ====== **MySQL** je relační databázový systém, který vyvinula švédská společnost MySQL AB (nyní vlastněná korporací **Oracle**). Je známý svou vysokou rychlostí, spolehlivostí a snadným použitím. MySQL ukládá data do tabulek, které jsou navzájem propojeny pomocí relací, což umožňuje efektivní organizaci a vyhledávání informací. Díky své open-source povaze a nulovým nákladům na licenci (pro většinu použití) se MySQL stalo standardem pro webové aplikace, jako jsou **WordPress**, **Facebook**, **YouTube** nebo **Twitter**. ---- ====== Klíčové vlastnosti ====== * **Relační model:** Data jsou organizována v tabulkách se striktně definovanými sloupci. * **Klient-server architektura:** Databáze běží jako server, ke kterému se připojují různí klienti (aplikace, webové servery, administrátorské nástroje). * **Podpora úložišť (Storage Engines):** MySQL umožňuje zvolit různé mechanismy ukládání dat: * **InnoDB:** Moderní standard, podporuje transakce (ACID) a cizí klíče. * **MyISAM:** Starší formát, velmi rychlý pro čtení, ale nepodporuje transakce. * **Škálovatelnost:** Dokáže obsluhovat malé blogy i obrovské podnikové systémy s miliardami záznamů. ---- ====== Architektura a fungování ====== MySQL zpracovává dotazy v několika krocích: 1. **Connection Manager:** Ověří identitu uživatele a přidělí mu vlákno. 2. **Query Optimizer:** Analyzuje [[sql|SQL]] dotaz a vybere nejrychlejší cestu k datům (např. zda použije index). 3. **Execution Engine:** Provede samotnou operaci nad daty. 4. **Storage Engine:** Fyzicky zapíše nebo přečte data z disku. ---- ====== MySQL v ekosystému LAMP ====== MySQL je klíčovou součástí "zlatého standardu" webového vývoje: * **L**inux (Operační systém) * **A**pache (Webový server) * **M**ySQL (Databáze) * **P**HP/Python (Programovací jazyk) Tato kombinace umožnila masový rozvoj dynamických webových stránek koncem 90. let. ---- ====== MariaDB: Svobodná větev (Fork) ====== Poté, co MySQL koupila společnost Oracle, vznikly obavy o budoucí směřování projektu. Původní zakladatel MySQL proto vytvořil **MariaDB** – "čistě" komunitní větev, která je s MySQL plně kompatibilní. Mnoho linuxových distribucí dnes místo původního MySQL nabízí právě MariaDB. ---- ====== Výhody a nevýhody ====== ^ Výhody ^ Nevýhody ^ | **Rychlost:** Optimalizováno pro bleskové čtení dat. | **Omezení Oracle:** Některé pokročilé funkce jsou pouze v placené verzi. | | **Komunita:** Obrovské množství návodů, fór a hotových řešení. | **Komplexita:** Náročné na ladění při extrémně vysoké zátěži. | | **Bezpečnost:** Silné mechanismy šifrování a správy uživatelů. | **Striktnost:** Vyžaduje pevné schéma (na rozdíl od NoSQL). | ---- ====== Administrační nástroje ====== Pro správu MySQL se nejčastěji používají: * **phpMyAdmin:** Webové rozhraní pro snadnou správu přes prohlížeč. * **MySQL Workbench:** Profesionální vizuální nástroj pro návrh schémat a správu serverů. * **Příkazový řádek (CLI):** Pro rychlou práci a automatizaci skriptů. ---- //Související pojmy: SQL, RDBMS, InnoDB, MariaDB, LAMP, CRUD, SQL Injection, Databáze.//