abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 03:55 | Nová verze

    Multiplatformní multimediální knihovna SDL (Simple DirectMedia Layer) byla oficiálně vydána v nové major verzi 3 (3.2.0). Změny jsou popsány v README pro migraci aplikací z SDL 2 na SDL 3.

    Ladislav Hagara | Komentářů: 3
    včera 19:22 | Nová verze

    Wine bylo po roce vývoje od vydání verze 9.0 vydáno v nové stabilní verzi 10.0. Přehled novinek na GitLabu. Vypíchnuta je nová architektura ARM64EC a podpora High DPI škálování.

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

    Edvard Rejthar na blogu zaměstnanců CZ.NIC představil nástroj deduplidog pro odstranění duplicitních souborů.

    Ladislav Hagara | Komentářů: 6
    včera 05:22 | IT novinky

    Společnost DeepSeek představila (𝕏) AI model DeepSeek-R1 (Hugging Face) srovnatelný s OpenAI o1 a uvolnila jej pod open source licencí MIT, tj. zdarma i pro komerční použití.

    Ladislav Hagara | Komentářů: 39
    20.1. 23:44 | Nová verze

    GKrellM (GNU Krell Monitors, Wikipedie), tj. grafická aplikace pro sledování systémů a různých událostí, byla po pěti a půl letech vydána v nové verzi 2.4.0. Přehled novinek na Gitea.

    Ladislav Hagara | Komentářů: 4
    20.1. 19:55 | Humor

    Americká první dáma Melania Trumpová vydala v předvečer manželovy inaugurace vlastní kryptoměnu. Jmenuje se $Melania. Donald Trump vydal vlastní kryptoměnu $Trump den před manželkou.

    Ladislav Hagara | Komentářů: 41
    20.1. 11:33 | Nová verze

    GNU Project Debugger aneb GDB byl vydán ve verzi 16.1. Podrobný přehled novinek v souboru NEWS.

    Ladislav Hagara | Komentářů: 0
    20.1. 03:00 | Nová verze

    Po 9 týdnech vývoje od vydání Linuxu 6.12 oznámil Linus Torvalds vydání Linuxu 6.13. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a Linux Kernel Newbies. Odstraněn byl souborový systém ReiserFS.

    Ladislav Hagara | Komentářů: 0
    19.1. 16:11 | IT novinky

    19. ledna 2038 přeteče hodnota time_t na 32bitových systémech, na vyřešení problému roku 2038 (Y2K38) tedy zbývá 13 let. Např. Debian v uplynulém roce přešel na 64bitový čas. Bernhard Wiedemann z openSUSE sdílí chyby v sestavení rozšířeného softwaru.

    Fluttershy, yay! | Komentářů: 2
    19.1. 15:44 | Nová verze

    Byla vydána druhá opravná verze 21.2 v dubnu loňského roku vydané verze 21 multimediálního centra Kodi (dříve XBMC, Wikipedie) s kódovým označením Omega.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Dotaz: Jak zjistím v PHP počet SQL dotazů

    24.7.2013 11:42 Juraj
    Jak zjistím v PHP počet SQL dotazů
    Přečteno: 752×
    Ahoj, našel jsem zde v patičce údaj který vypadá nějak takto

    Doba zpracování: 0.03117 | SQL dotazů: 5 | Uživatelé: 56

    Jak můžu i já zjistit takový počet SQL dotazu do MySQL databáze v PHP, poradí někdo? Díky

    Řešení dotazu:


    Odpovědi

    24.7.2013 13:09 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Do objektu, který posílá dotazy do databáze, přidáš čítač.
    26.7.2013 12:39 hyperventil
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    což předpokládá, že takový objekt existuje a je použit pro všechny dotazy. možná by bylo dobré zvážit použití nějakého profesionálního profiling nástroje, např. xhprof.
    26.7.2013 12:48 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Dnes už se to přece jinak než přes objekt nedělá. Potřebuji přece k SQL dotazu přidat data, které standardnímu ovladači musím dodat zvlášť. Také musím nějak tu databázi otevřít a přitom ji chci otevřít až když ji skutečně potřebuji.

    Do takového objektu prostě doplním jeden čítač a jeden getter k němu. Hotovo.
    26.7.2013 15:47 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Databázový dotaz nelze položit jinak než přes ten objekt, protože deskriptor k té databázi nikdo jiný nemá a objekt ho neposkytuje.
    26.7.2013 15:31 Mr.S1lent.cz
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Pri vyvoji rozhodne pouzivej frameworky. V soucasne dobe muzu doporucit bezkonkurencni Nette. Nativne ma info debug bar, kde mas zakladni debug data, vcetne pametove narocnosti a souhrn vsech sql dotazu pri pouziti integrovane databazove vrstvy Nette\Database.
    26.7.2013 15:37 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Rozhodně bych odstranil to slovo "rozhodně". Frameworky nejsou samospasitelné a občas vedou do pekel.
    26.7.2013 15:43 Mr.S1lent.cz
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Bez frameworku neni programovani efektivni. Kazdy language jde nejakym zpusobem injectnout, kdyz se dostanes do uzkych... Je to sice praseni, ale tomu se vetsinou nevyhnes. Kazdopadne kdyz pouzivas nastroj, ktery pouziva a vylepsuje velka komunita lidi, je mnohem mensi sance, ze se dostanes do uzkych a ze se nekde zamotas ci zaseknes. Zadna volba neni 100%, ale je to cesta nejmensiho odporu. Velka efektivita a pripadna okamzita pomoc na chatech/forech komunity dela ze vsech framworku pro vsechny jazyky a typy aplikaci jasnou volbu.
    26.7.2013 15:53 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Zrovna u databáze si místo košatého frameworku raději udělám vlastní 100-200 řádkový model, který umí perfektně vše, co aplikace potřebuje a nic zbytečného navíc.

    O efektivitě frameworků bychom mohli dlouho diskutovat, ale uznávám, že v dnešní době není nutné na efektivitu brát zřetel. Frameworky jsou prostě pomalejší, ale dnes už to tolik nevadí.
    29.7.2013 15:56 Mr.S1lent.cz
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    No tak muzes samozrejme vsechno psat rucne, ale vyvoj a prehlednost - nasledny debug je nekolikrat casove narocnejsi a kdo ti zaplati tu o 20ms mensi rezii frameworku, opravu velkeho mnozstvi logickych chyb u velkych aplikaci, kdyz hrdlo db je nekolikrat vetsi, nez tech 20ms? Nikdo.. :) O znovupouzitelnosti kodu v nejakem tymu programatoru bez znalosti tveho nastroje ci API ani nemluve...

    Jinak jsem videl i weby svistet kolikrat rychleji na frameworcich, nez od nejakeho bastlire v citem phpku. Zalezi to na tom, jak umi aplikaci optimalizovat.

    A jestlize chce clovek hledet na vykon, pak co se tyce rychlosti vyvoje, tak at se treba mrvi s C++ webtools, kdyz je tak chorobne zavisly na kazde ms, kterou mu stejne, jak jsem psal, zhati databaze...
    29.7.2013 16:25 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    PHP je samo sobě frameworkem. Stačí jen znát jeho vestavěné funkce a cizí frameworky se stanou zbytečnými. Zrovna vazba OOP na databázi je v PHP vyřešena velmi elegantně. Podobně zbytečným je například Smarty, protože v čistém PHP vypadají šablony mnohem přehledněji.

    Jde mi hlavně o úsporu času při vývoji. Proto cizí frameworky téměř nepoužívám.
    30.7.2013 09:07 Mr.S1lent.cz
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Asi nevyvijis v praxi v tymu nebo na vetsich projektech, jinak bys tohle nemohl tvrdit. Na mensi ci nekomerncni projekty inu proc ne, ale na neco vetsiho, to by bylo docela "wtf" :)
    30.7.2013 09:18 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Nemohu za to, že ten tvůj tým nezná PHP a místo elegantních řešení dodávaných s jazykem používají cizí frameworky jenom proto, že někde slyšeli o jejich kvalitě.
    30.7.2013 09:32 Mr.S1lent.cz
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Proc bych mel vyvijet kolo, kdyz uz dost kvalitni kolo existuje, overene tisici programatory? Tam je vetsi nadeje nejakeho odlazeni a odbugovani nez u nastroje, ktery bych si zbytecne vyvijel a ladil sam. Neznalosti bych se neohanel, to je zaklad a prepisovat kod frameworku tak, aby byl efektivni a bezpecny jenom proto, ze jsem se zarekl, ze nebudu pouzivat cizi framework, mi proste prijde nestastne, nez abych ho proste a jednoduse pouzil. A myslim, ze ne jenom me, ale i 99% prosperujicih sw firem.

    Jinak kdyby bylo PHP samospasne, nesnazili by se sami autori o nejaky svuj akademicky zend framework, neni-liz pravda a kdyz sam autor pro svuj jazyk vyvine framework, to uz je prece jen nejaky impulz pro to, ze psat tuny kodu neprijde normalni ani klukum ze zendu :)))
    30.7.2013 09:43 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Tys to nepochopil. Napsat kus kódu v čistém PHP je dnes jednodušší, než ten samý kus kódu psát v nějakém frameworku. Autoři PHP totiž ty frameworky vložili přímo do jazyka.

    Podle mne kolo vynalézají spíš autoři frameworků. Vše potřebné už v PHP je.
    30.7.2013 16:41 Mr.S1lent.cz
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    To jakoze naprosto vubec, to zijes asi v uplnem jinem vesmiru. Jak resis hezke routovani, generovani formularu, life time aplikace, posilani signalu? Vsechno velkym kusem kodu, na ktery mi staci jen vytvorit instanci s parametry. Jak v aplikaci resis Dependency Injection design pattern? Takhle bych mohl pokracovat do zitrka...

    Bud mi odpovis, ze to neresis a delas vse slozite manualne, anebo ze na to mas svuj vlastni nastroj, ktery neustale rozsirujes, protoze potrebujes vzdy neco noveho a za 10 let skoncis na nejakem bastlu se stejnou funkcnosti, jako u radou programatoru vylazenem frameworku...

    Kdyz jsem zacinal v PHP, tak jsem byl nadseny do toho, si psat ruzne pomocne funkce, ktere by mi usnadnily a urychlily vyvoj a porad jsem je zdokonaloval, upravoval a rozsiroval, pak jsem si uvedomil, ze uz existuji plne sofistikovane nastroje a ze vymyslim kolo, tak jsem tento fakt prijmul a zacal tyto nastroje pouzivat.

    A je uplne jedno, jeslti vyvijim v PHP, pythonu, ci C++, vsude jsou dostupne frameworky, ktere jen a jen ulehcuji praci a nic jineho. Pokud ti 10 - 20ms rezie lezi v zaludku z duvodu, ze se ti nechce studovat dokumentanci, pak je to tvuj boj, ale neodsuzuj frameworky jako takove, bez kterych by snad zadna aplikace nemohla fungovat, protoze by jeji vyvoj byl priserne drahy.
    30.7.2013 16:57 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Jak resis hezke routovani, generovani formularu, life time aplikace, posilani signalu? Vsechno velkym kusem kodu, na ktery mi staci jen vytvorit instanci s parametry. Jak v aplikaci resis Dependency Injection design pattern?
    To všechno umí PHP i bez frameworků. Stačí si jen přečíst dokumentaci PHP a použít nástroje, které už vymyslel někdo přede mnou. Nemusím přece vynalézat kolo.
    30.7.2013 17:01 Mr.S1lent.cz
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Ja PHP znam moc dobre, i do hloubky, protoze jsem pro nej psal nejake extensiony a vyvijel jsem sam nejaka rozsireni pro ruzne nastroje, takze s dokumentaci na me nechod.

    Takze jinak:

    1) jak resi PHP Dependency injection? 2) jak PHP generuje server/client side validaci formularu? 3) jak PHP resi hezke URL? 4) jak PHP resi zachytavani udalosti, o kterych ani samotne nevi? 5) jak osetruje zakladni injections?

    Odpovim jednoduse.. Nijak :) A to jsou jen zakladni veci, ktere od vyzaduji - proc bych se mel s timto zdrzovat, kdyz tyto veci potrebuji opakovane, to je mam neustale psat od piky? Proc?
    30.7.2013 17:24 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    1. Stačí uvést interface před formálním parametrem
    2. Validace v PHP také je
    3. Hezká URL mi vyrobí Apache
    4. Jako kdybys neznal obsluhu výjimek a zachytávání i fatálních chyb
    5. htmlspecialchars, urlencode, prepared statements, ...
    Máš ještě nějaké otázky? Rád poradím :-)
    1.8.2013 09:40 Mr.S1lent.cz
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    ad 1) Jak zajistis, ze budes mit v aplikaci vzdy jen jednu instanci nejake tridy a ze vzdy budes mit moznost pro ni ihned sahnout?

    ad 2) To ze ma byt validace? :D Pod pojmem form validace si prestavuju, ze mi nejaky takovyto zapis:
    $form->addPassword('password', 'Heslo:')
        ->setRequired('Zvolte si heslo')
        ->addRule(Form::MIN_LENGTH, 'Heslo musí mít alespoň %d znaky', 3);
    
    $form->addText('zip', 'PSČ:')
        ->addRule(Form::PATTERN, 'PSČ musí mít 5 číslic', '([0-9]\s*){5}');
    
    Vygeneruje: javascriptovou validaci s nejakym hezkym reportingem v html a server-side validaci v php

    Tohle cele mi zabere napsat asi tak pul minuty. Jak dlouho ty budes resit tohle vsechno rucne vcetne nastylovani chybovych javascriptovych zprav? Samozrejme vcetne odladeni, protoze narozdil od meho otestovaneho frameworku tvuj kod otestovany neni

    ad 3) Hezkou url mozna, ale odkazy nani? V cele aplikaci pouzivam macra nebo redirect metody v nejakych controlerech/presenterech ve tvaru:

    {link presenter:akce} nebo {plink akcePresenteru} ci $this->redirect('presenter:akce'); kdyz chci pridat parametr, pouziju: {link presenter:akce, id => $id} atd...

    Jak to resis ty? Pekne a neprehledne si vypisujes $_SERVER['HTTP... ? :) Mimo osklivy zapis to opet jako formularova validace vede k ruznym peklepum

    ad 4) Udalosti mam na mysli ty, ze mam v presenteru nejaky zivostni cyklus, metody, ktere se volaji v controleru/presenteru pred vykreslenim, v prubehu, po, ktere se volaji pri startu controleru a jsou tim padem common, ci pri konecne fazi jakoby nejaky "__destruct". Vsechny tyto metody maji odpostatneni, kdyz mam nejaky zakladni model aplikace, ktery se chova podobne a muzu vyuzit dedicnosti.

    ad 5) je sice hezke, ze tyto funkce znas, jde o to je ale chytre je pouzit. Pokud bude neustale zavazet nekde v kodu, jen to bude aplikaci zneprehlednovat. Je dobre je umistit do spravne aplikacni vrstvy. Ale opet neustale psani dokola je neefektivni.

    Mas jeste nejake zacatecnicke zle navyky? Rad te navedu :)

    PS: zatim jsi mi dokazal pouze to, ze pises 3 tuny zbytecneho kodu neustale dokola bez nejakeho opodstatneneho duvodu. Jo, vlastne duvod mas - "PHP je prece framework sam o sobe, tak proto budu psat a psat a chybovat a ladit, protoze proto" - nebo to delas kvuli tem 20ms rezie? :D
    1.8.2013 10:42 DarkKnight | skóre: 26
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    ad 1. singleton, jak to delas ty?
    ad 2. tobe to zabere pul minuty, mi to zabere minutu, zato budu presne vedet, ze tam neni nejaka bota
    ad 3,4,5 - doporucil bych si zjistit neco o navrhovych vzorech a ne porad poukazovat jenom na ten balast z nazvem Dependency injection

    zle zacatecnicke navyky tu mas snad jenom ty... prijde mi, ze jsi nikdy na zadnem vetsim projektu moc nedelal (ono tech 50 tisic radku nejakeho systemu + dalsi framework tomu odpovida, ta rychlost bude fakt zazracna, vlastne se bude lisit jenom o tech 20ms :) )

    a propos, rozdil mezi aplikaci napsanou v cistem php a s pomoci frameworku je bezne vice nez 20ms, to jen tak na okraj...
    1.8.2013 12:08 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    1. Obvykle se to dělá Singletonem, ale pokud používáš DI, tak Singleton většinou nepotřebuješ. Singleton je zpravidla jen chybou v návrhu aplikace.
    2. Ptal ses na validaci. Ne na generování formulářů. To píšeš kvůli každému prvku ve formuláři takovou nudli? Pro každý jazyk extra? A co vrstvy, to ti nic neříká?
    3. Když umíš používat OOP, tak nepotřebuješ makra. Do šablony vložím přímo objekt který potřebuji. $_SERVER['HTTP... mám uklizený v modelu, aby mi metody kolem něj poskytovaly totéž, co ta tvoje makra. Přece ho nebudu v programu parsovat.
    4. Aha, tak na to mám Observer. Je součástí PHP.
    5. Právě psaní ve vrstvách mi umožňuje vyhýbat se používání nesmyslných frameworků a znovupoužívání kódu. Také mi to umožňuje psaní kratšího a přehlednějšího kódu, než jaký by byl s frameworkem.
    Aplikace neladím, ale testuji. Je to efektivnější.
    30.7.2013 16:57 Mr.S1lent.cz
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Ted pracuju na informacnim systemu na webove platforme, kdy ma PHP kod bez html sablon zatim okolo 50 000 radku, a nedokazu si predstavit, jak bych to bastlil v cistem PHPku a resil zakladni funkcni logiku prostredi soucasne s logikou aplikace, tam by bylo tolik prostoru pro logicke chyby, ze by se vyvoj a hlavne odlazeni aplikace neskutecne prodrazilo.

    Jde videt, ze nepracuje nikde v zadne fungujici firme, ale spis operujes jako teoretik, jinak by jsi mluvil uplne jinak. Navic oblibene frameworky vetsinou pisi docela zname osobnosti v programatorskem svete, ktere plati za velke kapacity v oboru, takze neni nutno se jich bat, spise naopak.
    30.7.2013 20:37 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Původní otázka zněla: "Jak můžu i já zjistit takový počet SQL dotazu do MySQL databáze v PHP,..." a ty se na něj vytasíš s frameworkem na 50000 řádek, když se to dá vyřešit na max. pěti řádcích i s komentáři.

    Když píšeš program na 50000 řádek, tak to pro mne znamená, že ho neumíš se stejnou funkčností a ve vyšší kvalitě napsat na 20000 řádcích nebo méně. Nikdy se nechlubím, jak dlouhý program umím napsat, ale jak ho umím napsat krátký. 50000 řádek informačního systému bez šablon? To bude asi způsobeno nějakou zásadní chybou při návrhu. Mělo by to být podstatně kratší, aby se to snáze udržovalo.

    A protože jsi četl nepozorně, tak jen připomínám, že jsem napsal, že dnes už na rychlosti programů tolik nezáleží. Záleží na rychlosti vývoje, která je s frameworkem sice zpočátku vyšší, ale později se to často krutě vymstí v nejrůznějších omezeních.
    31.7.2013 11:45 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Navic oblibene frameworky vetsinou pisi docela zname osobnosti v programatorskem svete

    Spíš bych zmínil jaké frameworky při tom psaní používají :)
    31.7.2013 07:27 potato
    Rozbalit Rozbalit vše Re: Jak zjistím v PHP počet SQL dotazů
    Týmový vývoj velkých projektů ve firmách je byrokratický a neefektivní. Částečně to má i svoje opodstatnění (např. zvýšení bus factoru). Těžko ho ovšem lze dávat za příklad, když jde o úsporu času při vývoji.

    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.