Snídaně s MySQL

Školení, která pořádám

V rámci akce Snídaně s MySQL, kterou pořádal slovenský Sun a Gopas, jsem měl krátkou prezentaci na téma Co dokáže databáze MySQL. Materiály z této prezentace dávám k dispozici. Prezentace vyvrací mýty o MySQL a upozorňuje na některé šikovné vlastnosti MySQL, které jsou předvedeny i na příkladech.

Co dokáže databáze MySQL
View more OpenOffice presentations from Jakub Vrána.
Jakub Vrána, Osobní, 3.6.2009, diskuse: 8 (nové: 0)

Diskuse

Juraj Hajdúch:

Hmm, také základné oboznámenie sa s MySQL: čo dokáže a čo nie.

ikona Martin Kravec:

Pekné, jednoduché a hlavne výstižné.

Visitor:

Můžeš prosím rozvést (nejlépe s příkladem) větu: "Pokud distribuuji program linkující MySQL, tak musí být pod GPL nebo musí použít placenou verzi."

Pokud mám eShop, který prodávám a běží na databázi MySQL, tak musím ten eShop mít pod GPL, nebo musím si MySQL koupit?

ikona Jakub Vrána OpenID:

Záleží na formě prodeje. Pokud eShop provozujete na vlastním serveru a prodáváte práva ho používat, tak licenci řešit nemusíte. Pokud software distribuujete jako jeden instalační balík spolu se serverem MySQL, tak celek skutečně musí být GPL nebo musíte mít placenou verzi. Pokud MySQL necháte nainstalovat samotného zákazníka, tak můžete mít licenci libovolnou.

To je alespoň můj výklad, podrobněji třeba na http://cs.wikipedia.org/wiki/GNU_General_Public_License.

Visitor:

A co třeba klasický prodej eShopu zákaznikovi, kterému to rozjedu na nějakém hostingu? (prostě klasika)

Jinak se mi zdá zajímavé, že je rozdíl, jestli MySQL nainstaluji bokem a pak mu k tomu hodím shop a nebo pokud mu prodám shop včetně MySQL. Co třeba varianta prodávám eShop + MySQL instalaci ale neprodávám MySQL server? Na to co to je se mi to zdá až příliš zamotané :)

ikona v6ak:

Pak je to instalované zvlášť a IMHO by neměl být problém - MySQL není zahrnuto do produktu.

Visitor:

Aha... pokud je tomu tak tak to je vlastně jen na zmatení, protože instalace MySQl může vždy být bokem a nějaký konfigurační SQL script už není problém... Díky za osvětlení...

Lukáš Stareček:

Je pravda, že MySQL se postupně vylepšuje, ale některé mýty nejsou mýty. Z mého úhlu pohledu je to jen hloupé (bez urážky) úložiště dat, které se hodí pro jednoduché aplikace. Pro složitější systémy se nehodí a ani na to není stavěná, ikdyž se o to vývojáři snaží. Pro jednoduché a středně složité weby je ale MySQL dobrou volbou. Co mám konkrétni připomínky k prezentaci, tak:

1. Jeden ze zakladatelů MySQL odešel, protože pod SUNem vydali verzi 5.1, která v sobě dle jeho slov obsahovala několik vážných chyb, které mohou způsobit ztrátu dat. Dle jeho slov tedy není, pravda že se MySQL vydává bez vážných chyb.

2. Papírově vypadají funkce obdobně jako u jiných vyspělých DB, ale když se člověk začte podrobněji do manuálu, zjistí, že to má háčky. Ano, MySQL má cizí klíče, ano, má triggery, ale v manuálu ve výčtu omezení je mj. uvedeno, triggery nejsou spuštěny cizím klíčem viz http://dev.mysql.com/doc/refman/5.4/en/stor…-restrictions.html . Opravdu směšné a něco to vypovídá o implementaci MySQL...

3. Autoincrement je poměrně hezká věc, která má nepříjemné efekty. Např. že 0 se inkrementuje => 0 je vyloučena z oboru hodnot => Nutnost speciálního přepínače SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

4. Fulltext je více méně směšný z hlediska funkce i výkonu. Pokud to někdo z fulltextem myslí opravdu vážně, tak použije něco jako je Lucene, Xapian, Sphinx atp. Nutno podotknout, že ostatní DB na tom nejsou lépe. Fultext je prostě lepší řešit speciálně na to určeným nástrojem.

5. Dle benchmarků exceluje při netransakčním zpracování. Při transakčním je ale pomalejší než vyspělé DB. Tak stejně při velkém vytížení konkurenčními procesy. Kdesi jsem četl, že je to dáno způsobem zamykání kritických sekcí (semafory?) a že by museli přepsat kus jádra aby to změnili.

No a z mých zkušeností si ještě postesknu, že MySQL má dost chabý optimizer/query planner.

Co je na MySQL velmi sympatické je její jednoduchost a pokud si ji udrží, bude mít své místo mezi DB. Na robustnější DB ale stále nedosahuje a určitě nějakou dobu ještě nedosáhne.

Toť můj názor a zkušenosti s MySQL.

Vložit komentář

Používejte diakritiku. Vstup se chápe jako čistý text, ale URL budou převedeny na odkazy a PHP kód uzavřený do <?php ?> bude zvýrazněn. Pokud máte dotaz, který nesouvisí s článkem, zkuste raději diskusi o PHP, zde se odpovědi pravděpodobně nedočkáte.

Jméno: URL:

avatar © 2005-2018 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.