Nevýhody MySQL
MySQL je spolehlivá a velmi rozšířená databáze, ale ne pro každý úkol je nejlepší volbou. Kde má slabiny, na co si dát pozor a kdy se vyplatí sáhnout po jiné databázi.
Slabiny a nástrahy
- Tolerantní nastavení některých serverů. Bez striktního režimu MySQL i MariaDB příliš dlouhý text potichu zkrátí nebo místo neplatné hodnoty uloží náhradní a jen vypíšou varování. Striktní režim je v současných verzích výchozí, hostingy ho ale často vypínají. Jaký režim server používá, ukáže dotaz SELECT @@sql_mode; – ve striktním režimu obsahuje STRICT_TRANS_TABLES nebo STRICT_ALL_TABLES.
- Rozdíly mezi MySQL a MariaDB. MariaDB vznikla jako odnož MySQL a obě databáze se postupně vzdalují. Běžné SQL funguje v obou stejně, liší se ale výchozí nastavení (například režim ONLY_FULL_GROUP_BY), některé funkce, datový typ JSON nebo chování optimalizátoru. Při přechodu mezi nimi je potřeba aplikaci otestovat.
- Změny struktury nejdou vrátit. Příkazy, které mění strukturu tabulek (CREATE, ALTER, DROP), automaticky potvrdí probíhající transakci a nedají se vrátit přes ROLLBACK. Úpravu struktury a dat proto nejde provést jako jeden celek, který se při chybě celý zruší. PostgreSQL změny struktury v transakci provádět umí.
- Méně pokročilých funkcí než PostgreSQL. PostgreSQL má bohatší datové typy (pole, rozsahy hodnot, vlastní typy), širší možnosti indexování dat JSON a rozšíření jako PostGIS pro geografická data. Kontrolní omezení CHECK začala MySQL dodržovat až od verze 8.0.16 – starší verze je přijaly, ale ignorovaly.
- Fulltextové hledání v češtině. Vestavěný index FULLTEXT neumí české tvary slov (hledání „kočka“ nenajde „kočky“) a krátká slova do indexu nezahrne. Pro kvalitní hledání v českém textu se používají samostatné vyhledávací nástroje, například Elasticsearch.
- Rozložení zápisů na více serverů. Jeden server zvládne i velmi navštívený web. Běžná replikace ale rozkládá hlavně čtení – řešení s více servery, které přijímají zápisy (například Galera Cluster u MariaDB), existují, jejich provoz je však výrazně složitější.
- Vlastnictví a licence. MySQL patří společnosti Oracle, která vedle bezplatné verze Community (licence GPL) nabízí placenou verzi Enterprise s dalšími nástroji. Část komunity proto přešla na MariaDB, kterou založil jeden z původních autorů MySQL (stav k září 2026).
Co už dnes neplatí
Starší srovnání uvádějí, že MySQL nepodporuje transakce, cizí klíče, pohledy, uložené procedury nebo triggery a že nestačí na náročné aplikace. To platilo pro velmi staré verze a pro starý typ tabulek MyISAM. Současné verze s výchozím typem tabulek InnoDB to všechno umějí, MySQL 8.0 a MariaDB 10.2 přidaly například okenní funkce a dotazy s klauzulí WITH a MySQL běží i pod velmi navštívenými weby.
Kdy zvolit jinou databázi
- PostgreSQL – složitější datové modely, analytické dotazy, geografická data a důraz na přesné dodržování standardu SQL.
- SQLite – malé aplikace, prototypy a nástroje bez databázového serveru. Celá databáze je jeden soubor.
- MySQL nebo MariaDB zůstávají dobrou volbou pro běžné weby, e-shopy a redakční systémy. Jsou dostupné na téměř každém hostingu a většina webových aplikací v PHP s nimi počítá.
Související články:
Důvody pro MySQL
Datové typy sloupců
Seskupování a součty (GROUP BY)
Vkládání, úprava a mazání dat