Hlavní navigace

Názory k článku Letmý úvod do uložených procedur MySQL (první část)

Článek je starý, nové názory již nelze přidávat.

  • 27. 7. 2006 12:53

    finc (neregistrovaný)
    Jsem rád, že se někdo začal i na českém webu zajímat o vylepšení v MySQL 5. Seriál na linuxsoftu není špatný, zejména pro začátečníky.
    Co se týče SP v MySQL, tak jsou zde omezení, které dost brzdí masový rozmach. Zejména bych vytknul syntaxi zápisu. Skutečně by bylo ideálnější, kdyby SP byly možné zapisovat v Jave, jako má Oracle. Ideální způsob. Jinak podle některých zpráv by první mělo na řadu příjit PHP. Ovšem otázkou je, jestli to je šťastný krok. Nemožnost volat další SP v SP je také dost velké omezení. Každopádně držím vývojářům palce. Dnes už snad nejsou lidé tak zaujatí proti MySQL. Dost často se mluvilo o tom, že MySQL je jen dětská DB, která nesahá Oracle ani po paty. Toto už skutečně neplatí.
    Ono otázek kolem MySQL je více. Už jen InnoDB systém, který koupil Oracle jasně ukazuje, že velké společnosti začínají mít strach z úspěšnosti této databáze. Zejména ve verzi 5.

    Abych také něčím přispěl, tak kdo bude volat SP přes php, měl by si dát pozor na uzavírání DB. To se stává, pokud zavolám SP stejným způsobem jako jakýkoli jiný dotaz do DB.
    Já používám tento způsob:

    <?php
    $query = "CALL sp(/* parametry */)";
    if ($mysqli->multi_query($query)) {
    do {
    if ($result = $mysqli->store_result()) {
    while($row = $result->fetch_assoc()) {
    // zpracovani
    }
    $result->close();
    }
    } while ($mysqli->next_result());
    }
    ?>

    P.S. Očekávám další díly, které blíže specifikují SP. Jako cursor, execute, apod.
    Další výhody MySQL 5 je defaultní podpora InnoDB, která je navíc vybrána za výchozí typ tabulek. Tento typ podporuje, jednu pro mě nejdůležitější vlastnost DB a to je foreign keys s referenčními integritami a vlastnostmi ON UPDATE a ON DELETE.
    Rád bych si také něco více přečetl o triggerech, funkcích v MySQL, views a nástrojů na spravování DB jako MySQL Administrátor, MySQL Workbench (škoda, že stále nepoužitelné), apod.
  • 27. 7. 2006 14:38

    Pavel Stěhule
    V druhém díle se dočkáte - nicméně tento článek je pouze o SP v mysql. O pětce by měl napsat někdo kvalifikovanější. Já jsem postgresista :-). MySQL celkem věrně kopíruje přání uživatelů. Dokud uživatelé nepožadovali sofistikovanější funkce, tak view, triggery a SP nebyly v plánu, a z MySQL šly hlasy, že to nikdo nepotřebuje, a naopak aplikace, které mají zabudovanou logiku v databázi jsou chybně navržené. A teprve, když začali uživatelé přecházet k firebirdu nebo postgresql změnili názor. Díky tomu má MySQL zhruba čtyřletý skluz za ostatními o.s. databázemi.
    Nicméně pětka je představuje generační skok a hlavně teď všechny vyšší databáze mají podporu SP, tudíž padá jeden z argumentů proti SP - přenositelnost.
  • 28. 7. 2006 9:04

    chytrak (neregistrovaný)
    Nerad bych vyvolal nejaky flame, ale jako zaryty postgresista si pri procitani takovych clanku o nejnovejsich ficurach MySQL, ktere nakonec maji omezeni az na pudu, vzdycky vzpomenu na vyrok jednoho core vyvojaru postgresu, kterej byl neco jako .. hm docela hezkej sql wraper nad filesystemem...
    jo jo ja vim uz maj i transakce... jen mi to nedalo :-)
  • 28. 7. 2006 11:01

    finc (neregistrovaný)
    Nemyslím, že je to flame, každý má to svoje. Pokud ovšem nehájí a nezatracuje jen na základě svých znalostí a neznalostí.
    Nemyslím, že by v dnešní době byl velký rozdíl mezi postgre a mysql. Každá z těchto DB má své pro a proti.
    Jestli tedy můžu, jaké omezení v MySQL máte na mysli? Dále jakou tak velkou výhodu má postgre oproti MySQL?
    Já osobně jsem rád, že zde existuje konkurence Oraclu a dalších systémů, které stále stojí hříšné prachy. Co se týče kvality, je jasné, že to ještě bude nějaký čas trvat, ale i přesto si myslím, že každý rozumný člověk by měl být rád za to, že zde máme možnost výběru. Ať už se to týká DB, OS či softwaru na přehrávání hudby.
    Navíc, v práci mám možné srovnání jak Oracle tak MySQL. A víc než o kvalitě DB je systém o správné analýze, normách, optimalizaci. To, že si někdo koupí Oracle za hříšné prachy a postaví na tom systém, který z možností DB využívá jen základní příkazy, tak je zcela zbytečné řešit to, že SP v MySQL nemůže uvnitř volat další SP, apod.
    Firmy, které mají své systémy postaveny na Oracle, dost často používají kanón na vrabce.
    Na druhou stranu, já z MySQL využívám vše, co mi nabízí a jsem plně spokojen. Ty "ficury", které mam na své straně, tak systém, který znám, na Oraclu ani zdaleka nevyužívá.
  • 28. 7. 2006 11:56

    Pavel (neregistrovaný)
    V 5.1 lze z SP volat jakákoliv ostatní SP včetně rekurzivního volání procedury (viz následující díl článku). Mám jednu zásadní výtku vůči MySQL. Běžně jsou jejich první ostré verze jsou šíleně zabugované. U alfa, beta verzí mi to je jedno, ale u ostré verze to považuji za chybu. Je mi jasné, že to časem vychytají. Podívejte se na buglist. Porovnejte si třeba úroveň chybových hlášení mezi PostgreSQL a MySQL. Jakmile začnete programovat SP, narazíte na chybějící implementaci polí, atd. Na druhou stranu jsou tam hezké vlastnosti .. server side variables, multirecord sets, collations, MyISAM tabulky jsou dábelsky rychlé, .. Trochu mi to připomíná diskuzi o přínosu basicu. Jedni budou tvrdit, že basic zpřístupnil programování jedné generaci programátorů, jiní, že basic zkazil jednu generaci programátorů (Totéž diskuze o PHP). V každém případě je vidět pokrok správným směrem.

    U MySQL nikdo fíčury nepoužíval, protože je MySQL prostě nepodporovala :-). Dost dobře si pamatuju, jak jsem celkem nešťastně seděl u 4.0, a navrhoval jeden SELECT. MySQL v té době neumělo nic z toho co šlo běžně používat v ostatních databázích (tehdy šlo hlavně o corelované poddotazy). Běžným uživatelům to samozřejmě nevadilo, bo neměli představu, že něco takového existuje.

    Souhlasím, že je zločin, když si někdo pořídí velkou databázi, a využívá ji jako MySQL. Nicméně to záleží hlavně na znalostech administrátorů. Komerční databáze jsou někde jinde: replikace, OLAP, datové pumpy. Nic z toho free databáze ještě pár let nebudou mít. Platí se za tohle, ne za možnost uložit pár hodnot do tabulky.
  • 19. 1. 2009 15:21

    bez přezdívky
    Podle manualu je mozne je tam nejak pridat. Jak? Jsem mimo misu??
    P.S.: Ten manual je docela na hovno, je v nom kulovy.
    P.P.S.: Ma Mysql query browser, ten nabizi i funkce, ale nepodarilo se mi to rozchodit, manual zarytě mlci. Znamena to ze sem lama??
  • 20. 1. 2009 9:18

    bez přezdívky
    Az pudou pridavat funkce psany v pajtnu, tak me prosim vzbudte
    Dik Je.