To je vtip?
Vykon - oproti osttanym databazam rozhodne nie.
Transakcie - su feikove.
Cudzie kluce - pozri na akom engine musis vyuzivat galeru.
Strata dat - s tym mam bohate skunosti.
Ja viem, ze dnes je v mode tvorit aplikacie co funguju, len pokial fuka spravny vietor, ale preco sa taym este chvalit a vychvalovat to ako spravne riesnie?
Můžeš být konkrétní? Srovnávat výkon je vždy diskutabilní, ale innodb poskytuje poměrně solidní rovnováhu, ve srovnání s Oracle DB nebo SQL Serverem na stejném HW poskytuje často lehce vyšší výkon pro operace, které podporuje, určitě není pozadu, u většiny nasazení ale člověk nejde na dřeň a každá databáze má konstrukce, které jí sednou a které jí nesednou. Podpora sql funkcí, procedur a divné chování jsou jiné úvahy.
Co znamená, že transakce jsou fejkové? Můžeš být konkrétní? Mariadb s Galerou deklaruje repeatable read, což dovoluje hodně ojedinělý výskyt Phantom chyb, viz specifikace ANSI SQL-92. Myisam engine nemá transakce a tam jsou opravdu fejkové, ale to není varianta, o které se bavíme, galera podporuje pouze innodb.
Opět, co znamená ztráta dat? Při jaké nastavení? Mariadb a innodb používá double write buffer ve výchozím nastavení, to dovoluje se dostat z nesprávně zapsaný page do datového souboru i v případě okamžitého pádu serveru. Zároveň veškeré transakce jsou v binlogu, pokud se poškodí datový soubor, je možné ho rekonstruovat, v případě použití galera clusteru (o tom je tohle vlákno), dochází k synchronní replikaci na jiný stroj. Poškození datových souborů kvůli chybě HW či OS se může vyskytovat, za to ale nemůže databáze samotná a od toho jsou zálohy případně právě použití clusteru. Ano, již několikrát jsem musel obnovovat datové soubory z odvařených serverů, díky kontrolním součtům u binlogu není ztráta většinou tak velká.
O kterých verzích Mariadb a galery mluvíš? Netvrdím, že Mariadb a galera je bezchybná a nejlepší cesta. Provozuji různorodé databáze od devadesátých let, nevím, co je dneska moderní, už jedu ve svých kolejích a snažím se doporučovat variantu, která je pro dané použití vhodná. Ztráty dat jsem řešil snad na všech velkých databázích (pamatuješ předloni dvoudenní výpadek Alzy?), zpravidla to je souhra spousty různých vnějších okolností a nikoliv pouze chyba databáze. Innodb je v tomhle poměrně spolehlivé a bouřlivé chyby s neplatnými checksumy, které se občas objevily v počátku již dvacet nepotkávám. Stejně tak je innodb relativně odolné proti chybám operační paměti (bez použití ECC), ale doporučené použití je s ECC, stejně to platí u ostatních. Nebavím se tady o malých projektech, na mariadb běží slevomat, rohlik.cz, kosik.cz, pilulka, používá jí v kritické části Equa Bank, KB, Česká spořitelna a nespočet dalších projektů.