abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 15:11 | IT novinky

    Společnost Espressif Systems oznámila, že rodinu SoC ESP32 brzy rozšíří o ESP32-H4 s IEEE 802.15.4 a Bluetooth 5.4 (LE) s podporou protokolů Thread 1.3, Zigbee 3.0 a Bluetooth Mesh 1.1.

    Ladislav Hagara | Komentářů: 1
    dnes 13:11 | Zajímavý software

    Kevin Bentley zveřejnil na GitHubu zdrojové kódy počítačové hry Descent 3 z roku 1999: "Někdo se nedávno zeptal, zda budou zveřejněny zdrojové kódy Descent 3. Oslovil jsem svého bývalého šéfa (Matt Toschlog) z Outrage Entertainment a ten mi to povolil. Budu pracovat na tom, aby se to znovu rozběhlo a hledám spolusprávce." [Hacker News]

    Ladislav Hagara | Komentářů: 0
    dnes 04:33 | Bezpečnostní upozornění

    Byla vydána verze 0.81 telnet a ssh klienta PuTTY. Opravena je kritická bezpečnostní chyba CVE-2024-31497 obsažena ve verzích 0.68 až 0.80. Používáte-li klíč ECDSA NIST P521 a použili jste jej v PuTTY nebo Pageantu, považujte jej za kompromitovaný.

    Ladislav Hagara | Komentářů: 0
    včera 21:44 | Komunita

    Hra MineClone2 postavena nad voxelovým herním enginem Minetest byla přejmenována na VoxeLibre.

    Ladislav Hagara | Komentářů: 0
    včera 19:11 | IT novinky

    Společnosti Avast Software s.r.o. byla pravomocně uložena pokuta ve výši 351 milionů Kč. Tu uložil Úřad pro ochranu osobních údajů za neoprávněné zpracování osobních údajů uživatelů jejího antivirového programu Avast a jeho rozšíření internetových prohlížečů (Browser Extensions), k čemuž docházelo prokazatelně po část roku 2019.

    … více »
    Ladislav Hagara | Komentářů: 7
    včera 15:55 | Zajímavý článek

    Bylo vydáno do češtiny přeložené číslo 714 týdeníku WeeklyOSM přinášející zprávy ze světa OpenStreetMap.

    Ladislav Hagara | Komentářů: 0
    včera 15:44 | Pozvánky

    V sobotu 20. dubna lze navštívit Maker Faire Jihlava, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | Zajímavý software

    Knihovna pro potlačení šumu RNNoise byla vydána ve verzi 0.2. Kvalitu potlačení lze vyzkoušet na webovém demu.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Nová verze

    FRRouting (FRR) (Wikipedie), tj. softwarová sada pro směrování síťové komunikace, fork Quagga, byl vydán ve verzi 10.0.

    Ladislav Hagara | Komentářů: 0
    včera 03:22 | Nová verze

    Julian Andres Klode vydal APT (Advanced Packaging Tool) ve verzích 2.9.0 a 2.9.1. Jedná se o vývojové verze nové větve APT 3.0. Vylepšuje se uživatelské rozhraní. Přidány byly barvičky. Aktuální náhledy a vývoj lze sledovat na Mastodonu.

    Ladislav Hagara | Komentářů: 3
    KDE Plasma 6
     (61%)
     (13%)
     (2%)
     (24%)
    Celkem 420 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: Serióznost MySQL?

    10.10.2017 13:39 __blr__
    Serióznost MySQL?
    Přečteno: 4531×
    Zdravím,

    hledám vhodnou (pro začátek pokud možno zdarma k použítí) databázi k projektu. Odhadem je max. několik tisíc záznamů přes všechny tabulky (kolem 80). K databázi se bude připojovat webová aplikace (doposud nespecifikována technologie) a program psaný v C/C++ - serverová aplikace.

    Četl jsem několik debat k MySQL. Opravdu je to tak špatná databáze, jak se píše (hlavně na českých fórech)? Nikde jsem nenašel proč by to tak mělo být, ani nějaký rozumný argument.

    Jaké s ní máte zkušenosti, případně s migrací na jinou DB?

    Díky za odpovědi

    Řešení dotazu:


    Odpovědi

    10.10.2017 14:02 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Mám výbornou zkušenost s MariaDB + výhradně InnoDB/XtraDB tabulky, file per table. 80 tis. řádků zvládne každá DB, máme v DB několik tabulek se stovkami miliónů řádků. Replikace master-slave běží už roky. Nepoužíváme uložené procedury ani triggery, nechci mít byznys logiku namíchanou v javě i v SQL. Ale spoustu projektů to tak úspěšně má.

    Výbornou službu udělá i PostgreSQL. Je čistě na tobě, kterou zvolíš.
    19.10.2017 18:35 Kate | skóre: 9
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Kolegům prý u miliardy řádků v tabulce začalo MySQL trochu tuhnout, ale jinak používáme také v pohodě :)
    BigWrigley avatar 26.10.2017 22:14 BigWrigley | skóre: 33
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Vcelku souhlasim. MariaDB s InnoDB, ted jsem se po delsi dobe podival na query statistics:

    Questions since startup:

    310,779,323,323

    ø per hour: 34,049,741

    ø per minute: 567,496

    ø per second: 9,458

    Ale mame to na jeden pomerne specificky usecase. Nic sloziteho, ale spousta dat, necele 2miliardy rekordu, partitioning. Nahore uz je to uz vic nez rok...
    Linux is like a wigwam - no windows, no gates and Apache inside.
    10.10.2017 14:24 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    MySQL je dobrou databází, která se používá hlavně na webserverech. Nedávno jí však byla změněna licence a je doporučováno přejít na následovníka MariaDB.

    Databází je však spousta druhů. Není jednoduché si mezi nimi vybrat nebo je vhodně zkombinovat. S MariaDB však v uvedeném případu neuděláš chybu.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    10.10.2017 14:32 a1
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    ne, neni spatna. ale stejne jako neni spatna java ani assebmler, hodi se k necemu vic a k necemu min. Pokud chces spis rychlej datovej sklad je to spravna volba, pokud planujes slozitou logiku v (O)RDBMS vyzkousej PostreSQL...
    10.10.2017 15:45 [Jooky]
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Ja mam v databaze backupvy katalog ... v case, ked som to riesil som tam mal cca 1.8 miliona riadkov ... MySQL databazu som sa snazil naladit ja a neskorsie aj databazovy specialista z enterprise prostedia. Ani jeden zasah nepomahal a vsetko tam trvalo strasne dlho (menili sme velkosti bufferov, pamati, konstrukciu klucov, etc.) ... katalog som presunul do default instalacie PostreSQL a co trvalo desiatky minut, zrazu zbehlo do par sekund. Od kedy je to v PostreSQL, tak ani neviem, ze ta databaza existuje ... predtym som musel stale pustat kadejake optimize a potobne veci, aby ta MySQL databaza ako ta fungovala ...

    ... netusim ci to je sposobom pouzitia, alebo tym backup systemom (bacula), ale v tomto konkretnom pripade ide PostreSQL o hooodne lepsie ako, akokolek naladena MySQL databaza ...
    10.10.2017 15:57 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Vždy záleží na Use Case. Pro jednoduché dotazy obvykle vychází lépe MySQL, pro komplexní zase PostgreSQL. Pokud někdo hodlá použít nějaký ORM framework, tak asi bude více spokojen s MySQL, protože ho výkon trápit nebude.

    Neuvedl jsi použitý engine. MyISAM někdy mívá podobné vlastnosti, které uvádíš. Aria a InnoDB jsou modernější, tímto neduhem by neměly trpět.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    10.10.2017 18:20 a1
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    ....databazovy specialista z enterprise prostedia....
    toto bych oznacil za "reseni problemu", pokud existuji enterprise databazovi specialiste na MySQL (kterou navic kdysi koupil SUN za USD1G), asi to s tou serioznosti nebude tak spatne... ;)
    10.10.2017 15:50 EtDirloth | skóre: 11
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Tiez moze byt zaujimava otazka licencovania a (re)distribucie.

    Pri PostgreSQL tato tema (skoro) uplne odpada.
    10.10.2017 19:10 karlik
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    MyISAM někdy mívá podobné vlastnosti, které uvádíš. Aria a InnoDB jsou modernější, tímto neduhem by neměly trpět.
    Mohl bys to trochu rozvést? Mám databázi v MyISAM. Pokud bych přešel na InnoDB, bude odolnější v případě "tvrdého" ukončení (např. "zamrznutí PC"), popřípadě bude vyšší pravděpodobnost obnovy?

    Nedávno se mi stalo, že PC komplet zamrzl. Po restartu se vše tvářilo OK, ale v "zamrznutém" PC chyběli nějaké data.

    Přitom vše běží jako master-master (dvě samostatné PC) a synchronizace prostě neproběhla, žádná chybová hláška, nic. Musel jsem druhý "master" zrušit a importovat do něj data z prvního. Přitom druhý "master" funguje jen jako záložní, data se do něj jen synchronizují.
    10.10.2017 19:25 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Mohl bys to trochu rozvést? Mám databázi v MyISAM. Pokud bych přešel na InnoDB, bude odolnější v případě "tvrdého" ukončení (např. "zamrznutí PC"), popřípadě bude vyšší pravděpodobnost obnovy?
    Ano, InnoDB je stabilnější. Navíc podporuje transakce, což se určitě bude hodit.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    10.10.2017 19:33 karlik
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Díky.
    okbob avatar 11.10.2017 06:31 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    MyISAM engine je netransakční - což také znamená, že pokud dojde k havárii a některá data jsou ve write cache, tak o ně přijdete. V dnešní době už by se takový engine vůbec neměl pro jiná než dočasná data (kde to nevadí) používat.
    11.10.2017 08:01 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Přesně tak. InnoDB/XtraDB jsou dnes u mysql/mariadb základ.
    10.10.2017 19:41 R
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    MySQL pouzivame roky, teraz uz teda takmer vsade MariaDB. Uz cez to pretieklo par milionov (eur). Funguje to bez problemov.

    Na MySQL nadavaju ludia, co prisli od "velkych" databaz, pretoze ma obmedzene moznosti. Ja zase nadavam na nich, ked im nic poriadne nefunguje a nestaci im ziadny HW.
    10.10.2017 23:22 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    MySQL/MariaDB se používá zhusta a často slouží bez problémů. Navíc existují použití, kdy je skoro jedno, jakou databázi použijete.

    V porovnání s většími databázemi má ale MySQL/MariaDB řadu omezení a odlišností, které začnou záhy postupně vadit a budete je muset obcházet ne zrovna ideálním způsobem. Jen namátkou jde třeba o absenci sekvencí, možnost mít AUTOINCREMENT jen na jeden sloupec v tabulce, neexistující integritní omezení pro některé enginy, odlišné chování GROUP BY atd.

    Pokud chcete klasickou univerzální sql databázi a nechcete se do budoucna omezovat, šel bych do Postgres. Ocitnete se od hned začátku v „lepší společnosti“ - lepší vývojáři, lepší návyky (samozřejmě v obecném průměru).

    Pak je tuna dalších databází, které se hodí pro speciální použití (sqlite, key-value databáze, objektové databáze atd...).

    Potřebujete hlavně někoho, kdo dokáže posoudit vhodnost databáze pro váš účel.

    Jinak ohledně té MySQL viz též třeba David Karban: MySQL sežere vaše data
    -- OldFrog
    Heron avatar 11.10.2017 00:08 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Jinak ohledně té MySQL viz též třeba David Karban: MySQL sežere vaše data
    Ano, něco podobného jsem taky už kdysi psal.

    MySQL ignoruje příkazy (engine v create table), ignoruje datové typu (do čísla si klidně vložte text), ignoruje špatný konfig (prostě se to spustí bez nějakého engine, třeba toho, co umí transakce, takže to potom ignoruje commit / rollback). Replikace nefunguje (ale máte si ji kontrolovat, to je vaše chyba, že jste přišli o data) a tak dále.

    Prostě MySQL nebrat.
    Získal jsem dojem, že MySQL a PHP patří dobře k sobě.
    Ano, naprosto souhlasím. PHP je na tom stejně blbě jako MySQL. Tohle je php v kostce:
    md5('240610708') == md5('QNKCDZO')
    K původnímu dotazu: doporučuju se mysql vyhnout. Pokud potřebujete SQL db, tak je tu postgresql nebo třeba firebird.
    11.10.2017 08:08 Miška | skóre: 31 | Praha
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Jinak ohledně té MySQL viz též třeba David Karban: MySQL sežere vaše data
    Ano, něco podobného jsem taky už kdysi psal.

    MySQL ignoruje příkazy (engine v create table), ignoruje datové typu (do čísla si klidně vložte text), ignoruje špatný konfig (prostě se to spustí bez nějakého engine, třeba toho, co umí transakce, takže to potom ignoruje commit / rollback). Replikace nefunguje (ale máte si ji kontrolovat, to je vaše chyba, že jste přišli o data) a tak dále.

    Prostě MySQL nebrat.
    By default, ale u vseho co ignoruje vygeneruje warning a da se nastavit aby misto warningu hazela errory. Oproti PostgreSQL ma vyhodu ve mnozstvi enginu. Takze clovek muze nakombinovat data mezi ruznymi enginy jak potrebuje. Mam neco co je opravdova databazova aplikace s transakcema a paralelnim zapisem? Je tu XtraDB. Mam sber ruznych dat kde transakce nepotrebuju ale mam hromady zaznamu? Je tu Aria. Mam hromadu vyexportovvanych zaloh do kterych se jednou za uhersky rok potrebuju podivat? Je tu CSV engine. Sphinx a spider meli taky nejaky zajimavy vyuziti.

    Takze ve vysledku bych rek ze MariaDB je vyrazne univerzalnejsi a neni to jen jedna SQL databaze, ale co si z toho clovek udela, to ma. Prirovnal bych to k mozna uz staremu srovnani KDE vs Gnome. Bud mate Gnome (PostgreSQL) kde vsechno funguje hezky by default ale pokud se vam neco nelibi, tak mate smulu, nebo mate KDE (MariaDB) s milionem stelovatek kde bud budete mit vsechno hezky potuneny, nebo z toho udelate silenej bastl.

    Takze za me, na 80 tisic radek by mozna stacila i SQLite, takze tady to bude asi burt. Pokud clovek chce dat databazi nakymu databazistovi at si s tim dela co chce, tak bude nadsenejsi z PostgreSQL. Pokud si clovek bude data a aplikaci delat sam a vi ze bude mit ruzny data a nebo ma malo prostredku, tak MariaDB dava smysl.

    Takze MySQL brat. Jen si davat pozor co od toho clovek chce a brat tu odpovidajici cast.
    11.10.2017 08:33 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Takze clovek muze nakombinovat data mezi ruznymi enginy jak potrebuje.

    Kdyby to bylo per database, tak budiž. Ale to, že mohou v jedné databázi fungovat některé tabulky transakčně a některé ne, osobně považuji za jeden z nejhorších nápadů, o jakých jsem v souvislosti s databázemi slyšel.

    Heron avatar 11.10.2017 09:26 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Ve verzi 5.0 a 5.5 uměla MySQL se všema svýma enginama totéž, co uměl PostgreSQL s jedním standardním enginem. Takže zatímco u MySQL člověk musel přemýšlet co konkrétně použít (protože něco umělo transakce a něco jiného zase třeba fulltext a něco třetího zase třeba komprimaci), tak na straně pg se tohle všechno umí by default v jednom engine a ještě k tomu plně ACID. Ale nechci z toho dělat klasické poměřování péra kdo co má a kdo co nemá. Navíc pro mě již MySQL nějakou dobu vůbec neexistuje, takže jak je to ve verzi 10 fakt nevím.
    a da se nastavit
    Ano, tohle je klasická hláška ze světa MySQL. Všechno je vaše chyba, měli jste si to nastavit.

    Znám několik případů, kdy se k vůli mysql přišlo o data. Vím o projektech, kde se po změně na jiný db server přišlo na to, že do VARCHAR(xx) se ukládají výrazně delší texty, než xx, a v db jsou prostě useklé. A data už nejsou. Od kámoše mám info, že někde v nějakém ne zrovna malém projektu a ne zrovna nevýznamném projektu se do číselného sloupce (něco jako flag) ukládaly písmenka. DB si na to nestěžuje, vše funguje. Akorát data nesedí, integrita je narušená. Přišlo se na to až s migrací na postgres (ale tj celkem jedno, to by se zjistilo i při jiných migracích). A odpověď je, že si to mají nastavit. Oni si to nastavili. VARCHAR(20) je svým způsobem nastavení. Pokud to db ignoruje, jakou mám jistotu, že když v konfigu nastavím opravdu_to_kontroluj = pravda to bude fungovat? Potom někdo přijde a řekne, tj tvoje chyba protože musíš zapnout ještě: ano_myslim_to_vazne_chci_kontroly = prosím. (Tohle nemám z MySQL, ale už jsem na to taky u jednoho programu narazil. Dvě konfigurační volby, jedna chtěla boolean a druhá chtěla nějaký slovní token.)
    Takze za me, na 80 tisic radek by mozna stacila i SQLite
    Tohle bych řekl že trochu záleží na tom, co se s těmi záznamy děje. Posuzovat náročnost db podle počtu záznamů nelze. Nehledě na to, že sqlite bude mít trochu výkonnostní problém s paralelním přístupem.
    ale co si z toho clovek udela, to ma
    Ano, s tímto souhlasím. MySQL se dá použít určitým způsobem s velkou výhodou. Ale to vyžaduje poměrně hluboké znalosti toho, na co se to hodí. Tím se ale posouvá na zcela opačný profesní konec, než pro začátečníky, kteří toho moc neví. A ti právě narazí u MySQL na hromadu nečekaných vlastností a nepříjemných překvapení.
    12.10.2017 00:20 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    takže jak je to ve verzi 10 fakt nevím.
    InnoDB už taky umí fulltext. To je asi tak všechno.
    Quando omni flunkus moritati
    12.10.2017 09:20 user490
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    A preco do VARCHAR(xx) ukladali data o velkosti > xx a do ciselneho stlpca ukladali stringy?! Ano, spatni programatori sa snazia vyhovarat na technologie, ta pritom fungovala presne podla dokumentacie, chyba bola v ich programe a nie v MySQL.
    12.10.2017 09:25 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Vy byste se měl přihlásit k nám na nějakou vysokou manažerskou pozici. Tolik člověkohodin vyplýtváme na opravování chyb - a přitom by je stačilo prostě zdokumentovat a bylo by vymalováno.
    12.10.2017 09:38 Kit
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Aplikace přece netuší, jak široký je sloupeček v databázi. Nemá tedy jak zkontrolovat, že se tam ten string vejde.
    12.10.2017 15:40 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Aplikace to tušit může, i MySQL poskytuje metadata o databázových objektech. Stačí se podívat na univerzální databázové klienty (např. phpMyAdmin), které ty údaje umí zobrazit a použít.

    Což samozřejmě neznamená, že má databáze nevalidní data tiše ignorovat.
    12.10.2017 17:27 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Přece se nebudu před každým insertem ptát databáze na její strukturu. Pouze jí sdělím: "Tady máš data a pokud ti nechutnají, tak je vyplivni nebo aspoň řekni, že ti nechutnají."

    Stačí po každém insertu poslat dotaz SHOW WARNIGS; a výsledek se dostaví:
    Warning(1265): Data truncated for column 'name' at row 1
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    12.10.2017 18:29 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Já jsem nepsal, že to máte dělat. Pouze jsem upozornil na fakt, že „aplikace netuší, jak široký je sloupeček v databázi“ není pravda, protože aplikace to vědět může.
    12.10.2017 18:56 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Pokud jsou na inserty navázány triggery, tak toho reflexí zas tak moc nezjistíš nebo můžeš obdržet chybné údaje - MySQL pro VARCHAR(60) vrací délku 180, což není ve znacích, ale v bajtech.

    Na reflexi bych se určitě nespoléhal, ani to není "best practice". Tady platí: "Tell, don't ask!"
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    12.10.2017 23:34 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Pokud ty triggery dělají nějaké další kontroly, tak to v aplikaci opravdu předem nezjistím. Ale to pak zase nevznikne ten problém, že databáze tiše provede něco jiného – protože ten trigger skončí chybou, která se propaguje do aplikace (alespoň nevím o tom, že by MySQL zatloukala i chyby z triggerů). Ale ještě jednou – já souhlasím s tím závěrem, že databáze nemá tiše ignorovat chybný vstup z aplikace, jenom jsme upozornil na to, že argument, kterým jste to chtěl podpořit, není tak docela pravdivý.
    13.10.2017 08:52 user490
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Přece se nebudu před každým insertem ptát databáze na její strukturu. Pouze jí sdělím: "Tady máš data a pokud ti nechutnají, tak je vyplivni nebo aspoň řekni, že ti nechutnají."
    Tak potom si ale musíš MySQL nastaviť do STRICT mode, databáza nevie čítať tvoje myšlienky, musíš jej konfiguráciou povedať čo chceš.
    13.10.2017 09:02 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Přesně tak. A řada PHP projektů psaných čuňaty přestane fungovat, protože v insertech neřeší rozdíl mezi číslem a stringem. Ale uznávám, že kdyby jim to mysql od začátku nedovolila, museli by to bývali napsat pořádně.
    13.10.2017 09:18 Kit
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Nemohu přece za to, že někteří dávají do apostrofů i čísla.
    13.10.2017 09:52 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    No a to je ten rozdíl mezi MySQL a pořádnou databází - dobré databázi není konfigurací potřeba říkat, co chci, protože funguje správně sama.
    Quando omni flunkus moritati
    13.10.2017 10:49 user490
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    "funguje správně" pre mňa znamená podľa dokumentácie danej databázy. Pretože "funguje správně" si každý môže vykladať inak.
    13.10.2017 13:09 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Ale to samozřejmě může, ale pokud bude mít jiný výklad než "databáze se chová tak, aby v ní bylo právě to, co do ní uživatel vkládal", je to špatný výklad.
    Quando omni flunkus moritati
    13.10.2017 13:48 Kit
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    To by nefungoval autoincrement ani timestamp. Dokonce ani triggery by si moc neškrtly.
    19.10.2017 15:05 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Uživatel je autor té aplikace. Pokud si do tabulky dá autoincrement nebo trigger, jsou výsledná data tím, co tam vkládal.
    Quando omni flunkus moritati
    11.10.2017 08:39 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Záleží, jaké jsou požadavky. To nehlídání constraintů na datový typ je záměrně zapnutá legacy funkcionalita, se kterou bohužel spoustu starších projektů (hlavně v PHP) počítá. Defaultní nastavení v MariaDB > 10.2.3 je již změněné na režim strict, který typy samozřejmě kontroluje. Leč starší PHP projekty od čuňat na tom kolabují a následuje přepnutí do legacy režimu :-(

    Pokud je požadavek na replikaci/clustering (což je dnes docela časté), pak např. firebird moc nepomůže. Jsou instalace (např. naše), kde se nepoužívají složité query a (zcela záměrně) facility nabízené databází (uložené procedury, triggery), ale o to víc je potřeba řešit replikaci/clusterování. Konzistentní klon souborů masteru bez jakéhokoliv omezení jeho provozu pomocí Xtrabackup je triviální, již jsou v něm hned uložené pointery pro nastavení sekundáru. Poté přesunout souborů na jiný stroj, nad ním spoustit db a z pointerů zapnout replikaci - práce na chvíli. Nemusí se nic dumpovat/nalévat, to by u naší 100GB DB chvíli trvalo. Na jeden slave replikujeme z několika produkčních serverů současně (vždy jen jeden master zapisuje), takže je přehození mezi nimi snadné, slave odebírá pořád data od všech. Nečekal jsem, že to bude fungovat tak spolehlivě...

    Nicméně moderní Postgresql 9 má již replikaci taky hezky řešenou, co jsem se koukal. Detaily bohužel neznám...
    11.10.2017 09:08 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Pokud je požadavek na replikaci/clustering (což je dnes docela časté), pak např. firebird moc nepomůže.

    V tomto případě byl požadavek na replikaci jen workaround na neschopnost databáze udělat zálohu za běhu bez udušení všeho ostatního, takže tam by Firebird s MGA a "levnými" read only snapshoty pomohl docela znatelně. Jinak i pro Firebird existují řešení pro replikaci, ale nejsou open source.

    11.10.2017 09:39 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    O tomhle požadavku v původním dotazu nic není a tazatel už se dál neozval.

    Pro nás je samozřejmě u replikace klíčová průběžnost, z replikačních slaves lze kdykoliv během dne naklonovat nejaktuálnější data (většinu času je na druhého hopu zpoždění oproti masteru pod 1 sekundu) pro vývoj (po obfuskaci mailů, hesel atd.), v noci se klonují na všechny devel/testovací stroje automaticky.
    11.10.2017 09:49 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Serióznost MySQL?

    Fráze "v tomto případě" se vztahovala k Heronovu postu, o kterém se v tomto vlákně diskutuje.

    Ale z toho, co píšete v druhém odstavci, to vypadá, že i ve vašem případě je replikace vlastně workaround na absenci levných read only snapshot transakcí.

    11.10.2017 10:05 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Replikace slouží k průběžnému přenášení stavu z produkčních serverů jinam, kde si s tím můžeme dělat, co je potřeba. Vývojáři nebudou na produkčních strojích běžících mimo vnitřní firemní síť dělat snapshoty a tahat je k sobě.
    17.10.2017 09:03 PetrHL | skóre: 17 | blog: petr_h | Neratovice
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Ve verzi 5.7 je dost věcí jinak. MySQL se posunula směrem k "dospělým" databázím. Stále je tam několik nepříjemností, o který je třeba vědět. Nebrat je hodně silné slovo.

    Možná byste si měl tu PHP kostku trochu přeleštit. Dobře víte, že v PHP se pro porovnávání má používat === a ne ==. Je to vlastnost jazyka. Jsou tam daleko nepříjemnější věci, zrovna toto bych mu fakt nevyčítal.
    "Do, or do not. There is no 'try.'" -- Jedi Master Yoda | CQRLOG | CQRPROP | HamQTH | Domů
    Heron avatar 17.10.2017 10:01 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    se pro porovnávání
    V tom příkladu je toho špatně mnohem víc. Výstupem md5 hash (pro dané vstupy) je hexa řetězec, který začíná 0e. Tohle php zmate natolik, že si myslí, že řetězec je číslo*, pokusí se ho zkonvertovat, konverze nedopadne dobře, obě "čísla" po konverzi skončí na stejné hodnotě a porovnání to vyhodnotí jako true.

    *) Což ve skutečnosti je, takže by měl porovnávat 128b hodnoty. Výstupem md5 je 128b číslo, ten hexa řetězec je jen převod tohoto čísla do soustavy o základu 16. Rozhodně to není float s exponentem.
    17.10.2017 10:50 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Příklad je to sice hezký, ale neříká to nic o tom, že je PHP špatné. Má jen jiné vlastnosti než je obvyklé u jiných jazyků.

    O důvod víc, proč nepoužívat MD5 pro ukládání hesel.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Heron avatar 17.10.2017 11:12 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    O důvod víc, proč nepoužívat MD5 pro ukládání hesel.
    Ach jo :-(

    MD5 se pro ukládání hesel neměla používat nikdy. První známky prolomení jsou z roku 1995 (resp. 1993), kompletně prolomeno v roce 2004. Před 13 lety. I kdyby to nebylo, tak je stejně slabá, 128b, díky narozeninovému paradoxu tedy pouze 64b, bylo brute force prolomeno někdy hodně dávno.

    Do roku 2010 bylo možné použít sílu 80b (tedy alespoň 160b kryptografickou hash), potom už jen 112b a pochopitelně větší. Tedy něco jako 224b, takže nejblíže 256b - sha2-256). Dneska už i sha2 není úplně bez poskvrny, takže se používá zúžení sha 256/512 (z sha512 se vezme jen 256b).

    To vše platí za situace, kdy má heslo entropii 112b a víc.

    Pokud ne, je nutné použít PBKDF2 (já osobně je nemám rád, protože nikdo pořádně neví, zda se tím milionem iterací neoslabuje ta funkce samotná, takže doporučuju rovnou používat klíč s dostatečnou entropií).

    Takže asi tak.

    Nehledě na to, že výstup začínající 0e lze získat z libovolné jiné funkce, takže to nefunguje bez ohledu na zvolenou fci.
    17.10.2017 11:31 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Běžně se však v PHP pro porovnávání používá symbol '===', takže by '0e' na začátku vadit nemělo.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    17.10.2017 16:06 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Příklad je to sice hezký, ale neříká to nic o tom, že je PHP špatné. Má jen jiné vlastnosti než je obvyklé u jiných jazyků.

    O důvod víc, proč nepoužívat MD5 pro ukládání hesel.
    Rozporováním uvedeného příkladu nedokážete, že je PHP bezproblémové :-) PHP je na tom skutečně asi tak jako Mysql - pokud bych si mohl vybrat, vybral bych u konkurence.
    -- OldFrog
    17.10.2017 16:26 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Na druhou stranu dokazovat problematičnost nějakého jazyka kódem, který dělá přesně to, co má, taky není úplně košer.
    Quando omni flunkus moritati
    22.10.2017 14:18 logik
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Říká.

    To, že je něco jiné než standard samozřejmě neznamená, že to je implicitně špatně. Ale tady nejde o to, že se to chová jinak, ale že to chování vede k snadno napsatelným a přitom těžko odhalitelným chybám. A to je jednoznačně špatně.
    22.10.2017 15:28 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Tohle se stává začátečníkům. Pokročilí vědí, že používat integer či string v místech, kde má být boolean, je hloupost. Pro porovnání hodnot má SQL operátor "=", jazyk C má "==" a PHP má "===". Co z toho je špatně?

    Pokud někdo v C použije pro porovnání operátor "=", tak mu kompilátor neřekne nic - udělá z toho přiřazení. Vede to k "snadno napsatelným a přitom těžko odhalitelným chybám". Je to jednoznačně špatně, ale nikdo to v C ani odvozených jazycích už nezmění.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    25.10.2017 10:47 jenda
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Pokud někdo v C použije pro porovnání operátor "=", tak mu kompilátor neřekne nic

    muj gcc mne varuje ....
    25.10.2017 11:37 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Můj gcc žádné varování nevypíše a normálně to zkompiluje.

    Každý jazyk má svá temnější zákoutí. Dobří programátoři o nich vědí. Začátečník v PHP klidně zamění třeba !isset() za is_empty() a pak se diví.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Josef Kufner avatar 26.10.2017 01:34 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Možná se to musí zapnout nějakým -Wall, ale co si pamatuju, buď to chtělo dvě rovnítka, nebo extra závorky kolem, aby bylo jasné, že to programátor takle myslel a není to chyba.
    Hello world ! Segmentation fault (core dumped)
    26.10.2017 07:14 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Option je -Wparentheses, defaultně se ten warning nezobrazuje, ale je to obsaženo ve -Wall.
    27.10.2017 18:24 logik
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    I to = versus == v C bylo při designu jazyka dosti kontroverzní. Nicméně je zde několik podstatných rozdílů:
    • C je lowlevel jazyk. Je tedy záhodno, aby v něm šly psát optimalizované věci, na úkor bezpečnosti programování. To pro PHP neplatí.
    • Operátor = V C má smysl a má smysluplný usecase a navíc se používá častěji, než ==. == v PHP je v podstatě nepoužitelný operátor, který "zabírá" místo užitečnému.
    • = a == V C bylo původní rozhodnutí, které mělo své důvody. Naopak === byla "oprava" původního PHP, kde byl jen operátor ==, o kterém se zjistilo, že je v praxi v podstatě nepoužitelný.
    • V C jde odlišit a kompilátorem zachytit případy, kde je použití = místo == podezřelé a ošetřit warningy. V PHP toto není možné, nelze rozlišit, jestli na daném místě má být === nebo ==.
    Další chyba v Tvé argumentaci je, že když se něco nemění, tak to znamená, že je to správně, což není pravda. Spousta věcí byla nějak navržena, a i když nebyla navržena dobře, tak kvůli zachování zpětné kompatibility se to změnit dost dobře nedá.

    Jinak ano, máš pravdu, že každý jazyk má svá zákoutí a dobrý programátor o nich ví. To ale nic nemění na tom, že DOBRÝ jazyk má těch zákoutí MÁLO, zatímco PHP je (mírně přeháním) mínojský labyrint.
    17.10.2017 13:16 PetrHL | skóre: 17 | blog: petr_h | Neratovice
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    To s tím přece nemá nic společného. Pro porovnávání se používá ===, pokud použijete něco jiného, nemůžete se divit, když dostáváte jiné, než očekávané výsledky.
    "Do, or do not. There is no 'try.'" -- Jedi Master Yoda | CQRLOG | CQRPROP | HamQTH | Domů
    22.10.2017 14:24 logik
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Jenže pokud jazyk má zmršený standardní porovnávací operátor, což vedlo k nutnosti zavést další, nestandardní, tak to prostě o jazyku něco vypovídá.

    Navíc to je jen jedna z mnoha chyb PHP. Např. další je, že relace < není uspořádání - v PHP existuje posloupnost hodnot, kdy každá je větší než ta před ní - a první je přitom větší než poslední.

    A takovýchto podivností je v PHP mraky.
    22.10.2017 15:09 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    V každém jazyku je mnoho podivností. Každý vývojář si hýčká podivnosti svého jazyka. V PHP používám operátor "<" pouze k porovnávání číselných hodnot a to funguje. Pokud to někdo používá k něčemu jinému, jeho chyba.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    27.10.2017 18:57 logik
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Ve whitespace se dá programovat perfektně, stačí mýt správný font. Kdo ho používá bez toho fontu, tak je to jeho chyba....

    To, že se dá podivnostem v návrhu jazyka vyhnout nijak nemění to, že to jsou podivnosti - a že jazyk, který má podivností hodně, nebo jehož podivnosti podstatně ovlivňují jeho používání, prostě není dobrý jazyk.

    Ono to má i praktické důsledky, kterým se nevyhneš, i když používáš < pouze pro porovnávání číselných hodnot. Co když nějakou chybou programu se Ti do seznamu, kterej sortuješ, zapletou jiné hodnoty - a na produkci dojde k nekonečné smyčce v sortu? Samozřejmě, nemám mít v programu chybu - ale od toho jsou dobré jazyky, aby chybu odchytili pokudmožno "při překladu", nebo se s nimi vyrovnaly alespoň nějak s grácií. A ne aby díky podivné definici operátoru < mohla funkce, která by měla být normálně "bezpečná", mohla vést k nekonečné smyčce.

    Ale jinak, samozřejmě, že kdyby bylo v PHP jen todle, tak se s tím dá žít. Ale v PHP je zmršené snad všechno, na co se člověk koukne.

    - operátor <

    - operátor == (musel být opraven pomocí nestandardního ===)

    - traity (nelze rozumně předefinovat metody traitu)

    - lambda funkce (neexistence closure, nesystémově opravené pomocí klauzule use a automatického $this v closure)

    - naprosto nesystematickou standardní knihovnu

    - disfunkčnost standardních iterfaců (jako např. ArrayAccess), které mají emulovat standardní objekty (např. Array) a přitom to v nemálo případech nefunguje

    - neexistence typu "funkce" (emulace pomocí stringu/array je v některých případech nedostatečná)

    - omezená implementace operátoru ||

    - podivný systém referencí (který se v některých případech chová divně)

    - špatná podpora unicode

    atd. atd...
    27.10.2017 22:32 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    V PHP je v podstatě chybou, pokud v něm děláš jakýkoli sort. Tuhle práci milerád přenechávám databázi nebo výstupní šabloně, která už s podporou Unicode nemá problémy a zvládá sort v různých jazykových mutacích dle potřeby.

    Zmíněné podivnosti se v mých aplikacích prakticky nevyskytují a proto mi ani nemohou způsobovat problémy. K čemu je v PHP dobrý systém referencí? Možná v C nebo C++ by dával smysl. K čemu jsou traity? Možná jako zdroj problémů. Klauzuli use v lambda funkcích nepoužívám a místo closure si raději vyrobím plnohodnotný objekt.

    Čísla přebíraná z uživatelského rozhraní je nutné vždy konvertovat na čísla, aby se s nimi dalo bezproblémově pracovat. Nástrojů je na to v PHP dostatek. Třída, která si neumí sanitovat datové vstupy, nemá právo na existenci.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    28.10.2017 21:56 logik
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    V podstatě celá Tvá obhajoba PHP zní: To, co PHP má implementováno dobře, tak nepoužívám. (A to má ještě ta obhajoba díry, protože v čem asi bude napsanej ten šablonovací systém, kterej použiješ k sortování? Že by v PHP?)

    Nevím, jaké máš zkušenosti s vývojem, ale jestli tvrdíš, že closure nezjednodušují práci, nebo že traity jsou k ničemu, tak evidentně proto, že znáš tyto věci pouze z PHP, kde mají opravdu málem více problémů, než pozitiv - a pouze z jednodušších aplikací, kde výhody těchto konstruktů nepoužiješ.

    V podstatě se dá říci: ano - v situaci, kdy používáš PHP jako s odpuštěním primitivní lepidlo pro web, kdy v něm nepotřebuješ implementovat žádnou alespoň trochu složitější logiku, tak Ti nevadí, že použiješ velmi omezený subset PHP, kde máš vychytané věci, které jsou v PHP náhodou implementované bezproblémově a proto se Ti negativa PHP zdají malá. Takto můžeš ale prohlásit za dobrý jakýkoli jazyk - u každého jde takový subset jazyka najít.

    Dobrý jazyk se ovšem od špatného liší tím, že člověk nemusí zjišťovat, že to a to je použitelné špatně a tedy to radši nemá používat. U špatného jazyka si musíš někde přečíst, že == nepoužívat, že sice jde porovnávat vše, ale smysl má porovnávat pouze čísla, že closure jsou na nic, že traity jsou na nic atd. atd... Dobrý jazyk Ti dá konstrukty, které se dají dobře používat, a nedává Ti bezdůvodně konstrukty, které vedou k chybám a nenabízí konstrukty, které (podle Tvého názoru) jsou k ničemu.

    Především ale dobrý jazyk není jazyk, který - když z něj osekáme velkou část pokročilých konstruktů, protože jsou implementovány divně - tak se hodí na házení věcí z databáze do šablony. Programování NENÍ zdaleka jen psaní webů, v dobrém jazyku člověk stejně snadno řeší jednoduché úlohy, jako i implementuje složitou logiku. A pak člověk ocení, když mu ten jazyk nejen neháže svojí nelogičností klacky pod nohy, ale poskytuje mu jazykové konstrukty, které implementaci této logiky usnadní. A mezi ně patří přesně věci jako traity, closure, funkce jako first class objekty atd. atd...

    Mám tu "čest" už nemálo let zároveň vyvíjet v Pythonu a v PHP - v obojím bych řekl, že ne zcela jednoduché věci, a tak mohu tyto jazyky dobře porovnávat. Úroveň podpory a vyjadřovací jednoduchost Pythonu je o několik úrovní výše, než u PHP. A to i přes to, že v PHP je pár věcí, které jsou implementované lépe, než v Pythonu (např. zadávání ordered kolekcí).
    29.10.2017 00:02 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Šablonovací systém pro PHP je napsán v C/C++, proto je tak rychlý.

    Closures se dají velmi snadno nahradit objekty, objektová aplikace tím získá na čitelnosti.

    Když traity v PHP nahradíš kompozicí objektů, tak se aplikace také zpřehlední. Nemusím využívat každou funkcionalitu jazyka, abych nedopadl jako kdejaký vývojář v C++.

    C++ vychází z tvého způsobu hodnocení jako špatný jazyk. Znáš nějaký dobrý jazyk?

    Každý vývojář ze svého jazyka vybírá pokud možno bezproblémový subset, aby se aplikace chovala předvídatelně správně, aby se v ní vyznali i ostatní členové týmu a také aby se dala modifikovat s minimem rozbitých závislostí. Mnozí zacházejí tak daleko, že boolean převádí pomocí if na boolean.

    Zkus si někdy v různých jazycích seřadit slova: ďábel, ďas, Dachau, dírka, děvče apod. Uvidíš, že mnoho jazyků to má implementováno blbě.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    29.10.2017 01:21 logik
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Jak který šablonovací jazyk. Např. dosti často používaný smarty je v PHP. To jako PHP je dobrý jazyk, ale nesmím v něm psát šablonovací systém.

    Closures se dají nahradit více různými postupy, ale prostě jsou situace, kdy je closure nejpřehlednější a nejpřirozenější zápis toho, co člověk chce. Obzvlášť v situaci, kdy "balená" funkce závisí na lokálních proměnných z funkce, kde ji volám. Jistě, můžu kvůli tomu vytvořit extra objekt, předat mu ty všechny parametry do konstruktoru atd... Ale proč bych to dělal a místo jedné řádky těch řádek psal deset??? Rozhodně je to v některých případech vše, jen ne přehledné. I v Javě (která tento pattern co vím prosazovala nejvíce) od toho ustupují.

    Když traity v PHP nahradím kompozicí objektů, tak nezískám funkcionalitu, kterou chci. Protože kompozice objektů mi nezajistí nahraditelnost dvou různých "traitovaných objektů". Dále není příliš šikovná v situaci, kdy trait nějakým způsobem používá funkcionalitu původního objektu (jistě, to jde často obejít pomocí DI, ale ne vždy je to šikovné). Atd. Kompozice je kompozice a traity jsou traity. Obojí mají své vhodné a méně vhodné usecasy.

    C++ není extra dobře navržený jazyk. Jenže pro ten jeho návrh alespoň existují dobré důvody, proč byl tak udělán. Protože se snaží zkloubit lowlevel programování a kompatibilitu c Cčkem s vysokoúrovňovým programováním. To holt s sebou nese hromadu kompromisů (i když je pravda, že objektovost v C++ nijak dobře navržena nebyla nejen ze zmíněných důvodů).

    U PHP ale žádné důvody pro ty jeho polovičaté implementace, řešení přes ruku a jeho nesystematičnost prostě nejsou. (Pokud tedy neberu jako důvod zmršené jádro PHP, do kterého prostě některé věci rozumně implementovat nešly).

    Máš pravdu, že každý vývojář vybírá bezproblémový subset jazyka. Problém PHP je, že tento bezproblémový subset je velmi malé procento toho, co PHP umí - či spíše co se tváří, že umí, a je to daleko více omezující subset se slabší vyjadřovací silou, než jsou takovéto subsety u jiných jazyků. Proto ho považuji za horší jazyk než ostatní.

    Jestli znám nějaký dobrý jazyk? Z mých zkušeností s PHP a Pythonem jako podobně zaměřených jazyků jsem prostě došel k tomu, že v PHP se píše pomaleji, s větším rizikem chyb a méně přehledně, než v Pythonu. Projekty v PHP se spravují hůře než ty v Pythonu. Proto považuji PHP za výrazně horší jazyk, než např. Python. Kde umístím rysku "dobrý" je irelevantní.

    PS: Např. python to seřadí dobře - samozřejmě pokud si řekneš o řazení dle českého locale. A?
    15.10.2017 12:14 __blr__
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Díky všem za odpovědi!
    16.10.2017 23:13 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Serióznost MySQL?

    Není až tak důležité, zda je MySQL špatná databáze. Otázka je spíš taková: Proč vůbec uvažovat o MySQL, když PostgreSQL je asi tak o sto generací a deset světelných let dál? Pokud hledáš databázi na nový projekt, která s projektem poroste od megabytů na notebooku až do replikovaných petabytů s paralelním vyhodnocováním, odpověď je PostgreSQL. Není třeba hledat nic jiného a není třeba zkoušet napřed polovičaté hračky a pak migrovat jinam. V případě aplikací v C++ PostgreSQL prostě rulezzzzzz.

    17.10.2017 07:03 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Podle mne je dost silný důvod to, že MySQL najdete na každém webhostingu s PHP, což se o PostgreSQL zdaleka říct nedá.
    17.10.2017 07:21 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Nejsem fanda výkřiků typu "rulezzzzzz", ale tohle je naopak hodně slabý důvod. Přesně takovou úvahou se špatná (nebo aspoň neoptimální), ale hojně rozšířená řešení stávají ještě rozšířenějšími nebo dokonce "de facto standardy".
    17.10.2017 12:59 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Asi si nerozumíme. Nemyslel jsem „silný“ důvod jako „dobrý“ důvod, ale jako „častý“ důvod.
    17.10.2017 13:58 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    To souvisí s tím, že na každém webhostingu s PHP s velkou pravděpodobností najdete Wordpress (případně něco podobného), který umí pracovat jenom s MySQL. Tím pádem po PostgreSQL není moc poptávka, takže není ani velká nabídka.
    Quando omni flunkus moritati
    17.10.2017 22:00 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Nikoli, kauzalita je opačná, ty hostingy s PHP existovaly dávno před WordPressem.
    18.10.2017 00:25 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Nikoli, o žádné kauzalitě jsem nemluvil, pouze o současném stavu
    Quando omni flunkus moritati
    18.10.2017 07:21 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Aha, takže autoři WordPressu se rozhodli podporovat jenom MySQL proto, protože věděli, že se WordPress tak rozšíří. Jinak třeba Drupal umí PostgreSQL, Joomla též, také phpBB… Pokud jste nemluvil o kauzalitě, pak nechápu, proč jste vůbec odpovídal – diskuse byla právě o ní. Diskuse byla o příčině, proč je MySQL tak rozšířená, a vy jste místo příčiny uvedl důsledek.
    18.10.2017 11:40 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    To já nevím, proč se autoři Wordpressu rozhodli tak, jak se rozhodli. Co umí Drupal a Joomla bude relevantní ve chvíli, kdy nebudou mít o řád nižší podíl na trhu než Wordpress. A že to umí ještě neříká, kolik lidí to používá a tedy jak moc je to zabugované.
    Diskuse byla o příčině, proč je MySQL tak rozšířená, a vy jste místo příčiny uvedl důsledek.

    Jste na omylu, já uvedl pouze to, jaký je současný stav. V současném stavu je MySQL u PHP webhostingů tak rozšířená proto, že málokterý CMS podporuje něco jiného a nejvýznamnější CMS nepodporuje nic jiného. K tomu, jak se k tomuto stavu došlo, jsem se nevyjadřoval.

    A jestli máte za to, že diskuze byla o příčině, tedy o něčem, co se odehrálo v minulosti, možná jste cokoliv o minulosti měl zmínit dřív než v #55, abychom to věděli i my ostatní, co nežijeme ve vaší hlavě.
    Quando omni flunkus moritati
    18.10.2017 13:30 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Ano, uvedl jste svůj mylný názor na to, proč je současný stav takový, jaký je. Skutečný stav je takový, že drtivá většina OSS webových aplikací napsaných v PHP, které potřebují databázi, podporuje alespoň MySQL, protože je MySQL tolik rozšířená u PHP webhostingů.
    18.10.2017 15:10 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Že vy jste si vybral jednu půlku té kladné zpětné vazby, která se vám víc líbila, ještě neznamená, že je to skutečný stav.
    Quando omni flunkus moritati
    18.10.2017 15:51 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Já jsem si jí nevybral a nepsal jsem to proto, že by se mi víc líbila, ale proto, že je to skutečný stav. PHP+MySQL kralovalo webhostingům už koncem minulého století, kdy v té vaší zpětné vazbě způsobené WordPressem poněkud chyběl ten WordPress.
    18.10.2017 17:15 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    To je klidně možné, ale minulé století tu bylo před skoro 20 lety, narozdíl od mnoha dnes existujících webhostingů.
    Quando omni flunkus moritati
    18.10.2017 19:42 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Nebylo by špatné udělat PostgreSQL nějakou propagaci. My ostatní si vystačíme s databází MySQL, kterou najdeme téměř všude a která splňuje naše požadavky.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    18.10.2017 20:45 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Ovšem těch 20 let determinovalo, jaký je současný stav. Zatímco před dvaceti lety byl linuxový webhosting prakticky výhradně PHP+MySQL, dnes už se najdou hostingy, které nabízejí PostgreSQL, Python, Node.JS a spoustu dalšího. Spousta aplikací se přesunula z webhostingů na VPS. Takže se dostáváme zpět k tomu, že odpověď na otázku, proč dnes uvažovat o MySQL, je ta, že z historických důvodů, které sice slábnou, ale stále jsou dost silné, je PHP+MySQL dostupné skoro na každém webhostingu. Takže pokud chce někdo napsat webovou aplikaci, kterou bude možné provozovat na co největším množství hostingů, sáhne právě po PHP+MySQL. No a když už je takhle omezený tím, co umí MySQL, PostgreSQL mu toho moc nepřinese, protože aby to mohl rozumně ukočírovat, musí i z PostgreSQL používat jen málo věcí, které umí i MySQL, a zbytek řešit v aplikaci.
    19.10.2017 15:07 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Ovšem těch 20 let determinovalo, jaký je současný stav.
    To je klidně možné, ale nijak to nerozporuje moje tvrzení o tom, jaký ten současný stav je.
    Quando omni flunkus moritati
    19.10.2017 20:36 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Na tom, jaký ten současný stav je, se všichni shodneme. Akorát vy se mýlíte v tom, proč takový je.
    20.10.2017 00:59 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Ale tak samozřejmě, vy jako zanícený teoretik samozřejmě všechno víte lépe. Až na několik výjimek, mezi které patří v podstatě všechno, o čem tady píšete.
    Quando omni flunkus moritati
    20.10.2017 21:12 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Já jsem některé ty hostingy v té době používal. Jestli vám to připadá málo praktické… Ale co taky chtít od vás, který máte pocit, že musíte mít vždycky pravdu, a pokud ne, platí bod jedna.
    21.10.2017 12:08 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Já jsem některé ty hostingy v té době používal.
    Jste dobrej. Ale na věcech to nic nemění.
    Ale co taky chtít od vás, který máte pocit, že musíte mít vždycky pravdu, a pokud ne, platí bod jedna.
    Tak od vás tohle hodnocení sedí.
    Quando omni flunkus moritati
    21.10.2017 12:40 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Já jsem některé ty hostingy v té době používal.
    Jste dobrej. Ale na věcech to nic nemění.
    Mění. Hlavně to vyvrací tvé tvrzení, že Filip Jirsák je jen teoretikem.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    22.10.2017 00:38 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    To tvrzení se rozhodně nevztahovalo výhradně na tuhle diskuzi.
    Quando omni flunkus moritati
    22.10.2017 08:04 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    To je chyba. Tématem diskuze není Filip Jirsák, ale MySQL.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    23.10.2017 10:22 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    O které se Filip Jirskák pokouší dělat nějaké závěry na základě něčeho, co platí o něm.
    Quando omni flunkus moritati
    Josef Kufner avatar 18.10.2017 22:40 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    MySQL se před těmi cca 15 lety prosadilo kvůli tomu, že má nízkou vstupní bariéru pro programátory začátečníky a také bylo nejrychlejší, i za cenu zahození transakcí a podobných "zbytečností", neboť tehdy ta trocha výkonu navíc byla znát (tedy alespoň na benchmarku).

    S tou nízkou vstupní bariérou to je tak, že MySQL bylo vždy docela snadné rozchodit. Nainstalovalo se to, spustilo se to, vyrobil se uživatel s databází a nějak to fungovalo. Tím, že to nic moc neumělo, tak to prostě bylo snadné. PostgreSQL přeci jen už chtělo, aby uživatel-programátor tak nějak věděl, co dělá a co vlastně chce. A když už to spustil, tak toho na něj vyskočilo docela dost a teď co s tím.

    A co si budeme nalhávat, weby potřebují v 90% případů jen CRUD na 4 SQL dotazy (C = Insert, R = select, U = update, D = delete). SQL databáze pak přinesla (relativně) spolehlivý a jednoduchý způsob ukládání dat, se kterým je mnohem méně práce než se soubory. Proto taky měla MySQL fulltext snad i dřív než cizí klíče.
    Hello world ! Segmentation fault (core dumped)
    18.10.2017 23:17 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Navíc pokud někdo používá PostgreSQL, často už o databázích aspoň něco málo ví. A může mít nepříjemné otázky, jako proč má hosting něco nastavené takhle nebo proč má ta databáze tak nízký výkon v porovnání s nějakým referenčním prostředím. Když se nelíbí výkon uživateli MySQL, je mnohem pravděpodobnější, že si bude stěžovat jenom „je to pomalé“ a akceptuje odpověď hostingu „pořiďte si vyšší tarif“.
    19.10.2017 07:21 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    S tou nízkou vstupní bariérou to je tak, že MySQL bylo vždy docela snadné rozchodit.

    Mně tam naopak některé věci (třeba kolem autentizace) přišly zbytečně komplikované. Ale pravda, když se to porovnává s PostgreSQL, tak to je samozřejmě jiná liga.

    17.10.2017 22:46 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Na primitivní dotazy ORM frameworků odpovídá MySQL obvykle o něco rychleji. Kvalita PostgreSQL vynikne až u komplexních dotazů.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    18.10.2017 00:33 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Na primitivní dotazy ORM frameworků odpovídá MySQL obvykle o něco rychleji.
    Což ale pořád nevykompenzuje fakt, že je to kopa hnoje.
    Quando omni flunkus moritati
    18.10.2017 01:06 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Budeš s tím svým faktem něco dělat nebo se s ním smíříš?
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    18.10.2017 01:37 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Na svoje věci používám Postgres, do čeho z vlastní vůle šlapou ostatní, to mi je vcelku jedno
    Quando omni flunkus moritati
    22.10.2017 14:23 logik
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    To není vůbec dobrý důvod k preferenci MySQL.

    Protože na dobrém hostingu PostgreSQL k dispozici je. Tedy to vlastně není omezující, naopak to ještě pomůže odfiltrovat hostingy, které stojí za houby.
    22.10.2017 15:17 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Proč by někdo na webhostingu používal PostgreSQL, když pro většinu implementací vychází pomalejší než MySQL? PostgreSQL by měl smysl pouze v případech, kdy by se business vrstva strčila do databáze a tomu se mnozí vývojáři brání zuby-nehty.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    23.10.2017 10:23 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Proč by někdo na webhostingu používal PostgreSQL
    Pro začátek protože je to - narozdíl od Mysql - databáze. Chová se příčetně, neztrácí data, a tak.
    Quando omni flunkus moritati
    23.10.2017 11:44 Kit
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Požadavky, které bývají na MySQL kladeny, zpravidla splňuje. Pro pokročilé aplikace je vhodnější PostgreSQL, o tom není sporu.
    27.10.2017 19:02 logik
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Třeba proto, že když zjistíš, že v rozdělaném projektu o X tisících řádků najednou potřebuješ nějakou funkcionalitu, kterou MySQL nepodporuje, si nemusel najednou řešit změnu databáze a s tím spojené dny a týdny práce a vychytávání průšvihů, kdy mysql něco dělá jinak, než ostatní databáze.
    27.10.2017 19:18 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    A totéž se ti s PostgreSQL stát nemůže?
    28.10.2017 22:32 logik
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Samozřejmě, že může. Ale 1) vzhledem k tomu, kolik funkcí má (použitelně) implementováno MySQL a kolik PostgreSQL, tak se to může stát s pravděpodobností mnohokrát menší

    2) tu možnost, že se ti to stane, nemůžeš nijak lépe minimalizovat, než volbou PostgreSQL. Žádná jiná free databáze co vím Ti nenabídne takové možnosti, jako PostgreSQL.
    17.10.2017 18:00 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Oracle?
    18.10.2017 20:52 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Serióznost MySQL?

    Na to se dá říct asi tak jediné: PostgreSQL je tady. Kde na GitHubu najdu Oracle? Nějak ho tam nevidím…

    20.10.2017 09:49 Petr
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Jj, zdrojaky nekde na githubu zajimaji kazdou banku nebo leteckou spolecnost ktera chce provozovat nejakou databazi...
    20.10.2017 10:22 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    A vypadá to, že původní tazatel svůj projekt řeší pro nějakou banku či leteckou společnost?
    20.10.2017 10:37 R
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Niektorych ludi z tych firiem by to zaujimat mohlo. Inych by zase mohlo zaujimat, kolko penazi bude cele rieseni stat. Pri desiatkach tisic eur na procesor to nebyva zanedbatelna polozka.

    BTW. Web Ryanair bezi na Apache (jazyk neznamy), SmartWings tiez (PHP). Myslis, ze pouzivaju Oracle?
    20.10.2017 16:13 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Pri desiatkach tisic eur na procesor to nebyva zanedbatelna polozka.
    Při započítání ceny výpadku kritických aplikací je ta cena za licence naprosto zanedbatelná...
    20.10.2017 18:54 R
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Tym chces povedat, ze s Oracle ziadny vypadok nenastane?
    20.10.2017 11:30 lertimir | skóre: 64 | blog: Par_slov
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Hm, kolik asi webů běží na Oracle?
    20.10.2017 16:14 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Je SAP taky web, když se na něj přistupuje přes webový prohlížeč? A Oracle EBS?
    20.10.2017 18:00 lertimir | skóre: 64 | blog: Par_slov
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    A podíval jsi se dobře na zadání?
    Odhadem je max. několik tisíc záznamů přes všechny tabulky (kolem 80).
    Jaké by byly cena za zpracovávání jednoho záznamu v případě Oracle? Myslíš, že je to ekonomicky smysluplný úkol pro SAP.
    20.10.2017 21:05 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Ty ses ptal kolik webů běží na Oracle a já se ptám jestli se počítají i SAP a Oracle EBS instance, co to má co společného s tím jestli to co chce tazatel je smysluplný úkol pro SAP?
    30.10.2017 15:53 Bubak | skóre: 16 | blog: Čtvrtá cenová
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    V pripade Oracle Express by to asi nebylo zas tolik :-) Dokonce by asi ani nenarazil na limity :-)
    ... máš jen mrtvou kočku a poškrábanýho jezevčíka ...
    22.10.2017 23:27 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Serióznost MySQL?

    Ano, samozřejmě zajímají, pokud vyvíjejí svůj vlastní software. Co vás vede k (mylné) představě, že tomu tak není? Licenční podmínky a další vlastnosti software (například dostupnost zdrojových kódů) jsou jedním z mnoha kritérií při rozhodování.

    Tučně zvýrazněná část věty výše je poměrně důležitá, protože ve spoustě případů jde o řešení objednaná od třetí strany. A pokud ta třetí strana nabízí řešení s Oracle, ve kterém je cena za licence nenápadně schovaná v celkové ceně, koncový zákazník pak už většinou výběru databáze nevěnuje tolik pozornosti. (Ke své škodě, dlužno dodat.)

    Zrovna banka nebo letecká společnost (a především státní správa) jsou podle mého mínění nasazení, kde Oracle nemá co dělat, zejména po kauzách tohoto typu. Podobně jako Shitdows je i Oracle software od firmy, která si raději honí své closed-source ego, než aby poděkovala za odhalení bezpečnostních nedostatků. Pravda, u žádného softwaru není zcela jisté, že v něm není exploit, který používá NSA, nebo že tam není rovnou backdoor. Jde ale především o to, že do PostgreSQL by se backdoor dostával hodně těžko a těžké by taky bylo dlouhodobě to tam udržet. U closed-source produktů se může člověk tak leda ptát: Wanna cry?

    31.10.2017 12:06 sachy
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Banky a letecke spolecnosti maji kriticka data v IMS a/nebo DB2.
    31.10.2017 12:17 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
    Rozbalit Rozbalit vše Re: Serióznost MySQL?
    Ne všechny a ne všechna. Třeba bankovní informační systém HSBC používá jako databázi Oracle 11g, Barclays má kombinaci obou databází.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.