Úvod >MySQL >Úvod do MySQL >Nevýhody MySQL

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