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 01:23 | Komunita

Phoronix spustil 2017 Linux Laptop Survey. Tento dotazník s otázkami zaměřenými na parametry ideálního notebooku s Linuxem lze vyplnit do 6. července.

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

Po třech měsících vývoje od vydání verze 5.5.0 byla vydána verze 5.6.0 správce digitálních fotografií digiKam (digiKam Software Collection). Do digiKamu se mimo jiné vrátila HTML galerie a nástroj pro vytváření videa z fotografií. V Bugzille bylo uzavřeno více než 81 záznamů.

Ladislav Hagara | Komentářů: 1
včera 17:44 | Nová verze

Byla vydána verze 9.3 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab. Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 2
včera 13:53 | Nová verze

Simon Long představil na blogu Raspberry Pi novou verzi 2017-06-21 linuxové distribuce Raspbian určené především pro jednodeskové miniaturní počítače Raspberry Pi. Společně s Raspbianem byl aktualizován také instalační nástroj NOOBS (New Out Of the Box Software). Z novinek lze zdůraznit IDE Thonny pro vývoj v programovacím jazyce Python a především offline verzi Scratche 2.0. Ten bylo dosud možné používat pouze online. Offline bylo možné používat pouze Scratch ve verzi 1.4. Z nového Scratchu lze ovládat také GPIO piny. Scratch 2.0 vyžaduje Flash.

Ladislav Hagara | Komentářů: 0
22.6. 14:24 | Nová verze

Opera 46, verze 46.0.2597.26, byla prohlášena za stabilní. Nejnovější verze tohoto webového prohlížeče je postavena na Chromiu 59. Z novinek lze zmínit například podporu APNG (Animated Portable Network Graphics). Přehled novinek pro vývojáře na blogu Dev.Opera. Oznámení o vydání zmiňuje také první televizní reklamu.

Ladislav Hagara | Komentářů: 0
22.6. 13:37 | IT novinky

I čtenáři AbcLinuxu před dvěma lety vyplňovali dotazníky věnované Retro ThinkPadu. Nyní bylo potvrzeno, že iniciativa Retro ThinkPad je stále naživu a Lenovo připravuje speciální edici ThinkPadu jako součást oslav jeho 25. výročí.

Ladislav Hagara | Komentářů: 19
22.6. 10:22 | Komunita

Bylo oznámeno, že frontend a runtime programovacího jazyka D bude začleněn do kolekce kompilátorů GCC (GNU Compiler Collection). Správcem byl ustanoven Iain Buclaw.

Ladislav Hagara | Komentářů: 7
21.6. 18:47 | IT novinky
Bulharská firma Olimex je známá jako výrobce kvalitních mini arm desek, u nichž se snaží být maximálně open source. Kromě velké otevřenosti taktéž zaručují dlouhodobou podporu výroby, což je vítáno ve firemním prostředí. Nyní firma ohlásila ESP32-GATEWAY, malou IoT desku s Wifi, Bluetooth, Ethernetem a 20 GPIO porty za 22EUR. Tato malá deska je ořezanou verzí ESP32-EVB.
Max | Komentářů: 21
21.6. 18:00 | Zajímavý článek

LinuxGizmos (v dubnu loňského roku přejmenován na HackerBoards a v lednu letošního roku zpět na LinuxGizmos) zveřejnil výsledky čtenářské ankety o nejoblíbenější jednodeskový počítač (SBC) v roce 2017. Letos se vybíralo z 98 jednodeskových počítačů (Tabulky Google). Nejoblíbenějšími jednodeskovými počítači v letošním roce jsou Raspberry Pi 3 Model B, Raspberry Pi Zero W a Raspberry Pi 2 Model B.

Ladislav Hagara | Komentářů: 0
21.6. 14:22 | Pozvánky

Ne-konference jOpenSpace 2017 se koná od 13. do 15. října 2017 v hotelu Farma u Pelhřimova. Registrace účastníků je nutná. Více informací na stránkách ne-konference.

Zdenek H. | Komentářů: 0
Chystáte se pořídit CPU AMD Ryzen?
 (6%)
 (31%)
 (1%)
 (9%)
 (44%)
 (9%)
Celkem 828 hlasů
 Komentářů: 65, poslední 1.6. 19:16
    Rozcestník

    Dotaz: optimalizacia dotazu

    8.7.2009 08:42 peter
    optimalizacia dotazu
    Přečteno: 325×

    Ahoj mam tabulku v ktorej sa nachadza priblizne 1500 zaznamov, dalsie zaznami tam budu pribudat. v tabulke sa nachadza stlpec ktory identifikuje cloveka, je to tabulka prichodov a odchodov z prace. potrebujem z tabulky casto ziskavat najnovsi zaznam konkretneho cloveka. Ktory dotaz by bol vykonostne lepsi, zatial ma napadlo iba toto: SELECT dochadzka_id FROM dochadzka ORDER BY dochadzka_id DESC LIMIT 1

    v tabulke dochadzka sa nachadzaju este stlpce: person_id, prichod_timestamp, odchod_timestamp.

    Odpovědi

    8.7.2009 08:50 Zbyněk Petr (Zboňa) | skóre: 6 | blog: zbona | Brno / Vyškov
    Rozbalit Rozbalit vše Re: optimalizacia dotazu

    Ahoj, nevím, co na tomto dotazu optimalizovat... Jen je potřeba, aby byl nad dochazka_id index resp. primární klíč. A ještě ti tam chybí WHERE podmínka na person_id (tento sloupec by měl mít také index). Tedy v MySQL bych to napsal asi nasledovně a v náročnosti dotazu problém nevidím:

    SELECT dochadzka_id FROM dochadzka WHERE person_id = 1 ORDER BY dochadzka_id DESC LIMIT 0,1

    8.7.2009 09:12 FooBar
    Rozbalit Rozbalit vše Re: optimalizacia dotazu

    To je dost neskutecne sileny "reseni". Mit v aplikaci hardcoded, ze minimalni person_id je 1? A co kdyz nekdo toho prvniho clovicka odmaze z databaze, to se bude delat uprava i v kodu?...

    8.7.2009 09:13 FooBar
    Rozbalit Rozbalit vše Re: optimalizacia dotazu

    Aaa, omlouvam se takhle brzo rano, spletl jsem si person_id a dochadka_id :)

    8.7.2009 09:18 peter
    Rozbalit Rozbalit vše Re: optimalizacia dotazu

    No napadlo ma take riesenie, ze dam do tabulky dochadzka trigger, ktory do tabulky posledna_dochadzka vzdy po inserte noveho zaznamu na konkretnu osobu vlozy posledne toto id, myslite ze to bude vykonostne horsie s tymto trigerom ako ked mam prehladavat takuto kopu zaznamov?

    8.7.2009 09:57 saslik
    Rozbalit Rozbalit vše Re: optimalizacia dotazu

    To zalezi na tom, jak se to bude pouzivat - trigger nema zadny vliv na dotazy, zvysuje pouze cenu insertu. Pokud ti to opravdu pripada tak kriticke, tak pri typickem pouziti (caste dotazy, neprilis caste inserty) toto muze byt dobra volba. Pro radove tisice zaznamu si ale myslim, ze rozdil nebude na rozumnem hardwaru (a databzi) pozorovatelny.

    8.7.2009 10:17 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: optimalizacia dotazu

    Záleží na tom, kolik budete provádět těch insertů a kolik těch dotazů na poslední příchod. Řešení s poznamenáním si id posledního příchodu (nemusí to být trigger, můžete použít i proceduru a insertovat zásadně jen přes ni) zpomalí insert a zrychlí select. Vzhledem k tomu, že z podstaty věci nepůjde pro jednoho člověka o více než jednotky insertů za den, zvýšením náročnosti insertu bych se moc netrápil. Další možností je samozřejmě udělat si na té tabulce index, ale přes to pomocné pole s id posledního příchodu to asi bude jednodušší, pokud nevyužijete řazení starších příchodů.

    Ještě technická poznámka: 1500 řádků v tabulce není žádná "takáto kupa záznamov", to je pořád docela malá tabulka.

    9.7.2009 08:05 tomfi | skóre: 19
    Rozbalit Rozbalit vše Re: optimalizacia dotazu

    Pokud potřebuješ ten záznam "často" jak píšeš, příjde mi i přes to, že se může jednat o zpomalení insertu logičtější ukládat si ten poslední příchod jako speciální hodnotu a tu pak nevyhledávat.

    Je tu ještě otázka toho, jestli při vysokém vytížení je poslední přidělené ID opravdu posledním záznamem přidaným do tabulky, ale uznávám že při 1500 záznamech a pracovní morálkou čechů není zase tak vysoce pravděpodobném, že by se tento problém vyskytl :D.

    Vždyť jsou to jen jedničky a nuly ...
    9.7.2009 08:07 tomfi | skóre: 19
    Rozbalit Rozbalit vše Re: optimalizacia dotazu

    Ještě přihodím... možná se vyplatí nahlédout sem http://msdn.microsoft.com/en-us/library/aa259185%28SQL.80%29.aspx

    Vždyť jsou to jen jedničky a nuly ...
    20.10.2009 10:05 posejdon
    Rozbalit Rozbalit vše Re: optimalizacia dotazu
    Ohledne optimalnosti navrzeneho dotazu. Problem je to, ze casem budes radit par tisic zaznamu, pricemz ti staci znat jenom nejvyssi/nejnizsi. V pripade, ze v tvem reseni bude puvodni select vracet relevantni data, sel by prepsat na toto a povali urcite rychleji

    SELECT max(dochadzka_id) FROM dochadzka [WHERE id_person=...]

    Ovsem razeni podle id opravdu neni nejlepsi reseni, sekvence zrucuje jedinecnost, nikoli posloupnost. Kdyz db poslape na vice nodech tak ma zpravidla nakesovany id a kazdy node muze aktualne prirazovat id z jineho rozsahu. Proto je spravnejsi se ptat na dobu vlozeni/zmeny zaznamu. Nicmene pri danem navrhu to nebude opet zcela trivialni, protoze prichodem se bude nejspis insertovat a odchodem updatovat a porovnavani budeme muset delat podle dvou sloupcu. Takze by to chtelo budto pridat sloupec modiftime (a s narustajicim poctem zaznamu se sikne i index), nebo prekopat zcela logiku tabulky a ukladat zvlast zaznamy pro prichod a odchod a rozlisit je typem.

    SELECT d.id_dochadzka FROM dochadzka d WHERE d.id_person=1 and d.modiftime = (SELECT max(t.modiftime) FROM dochazka t WHERE t.id_person = d.id_person)

    Predpokladam, ze tezko v jeden okamzik bude mit clovek vice zaznamu, to by se pak muselo resit nejakou agregacni funkci. V subselectu misto t.id_person = d.id_person muze byt primo cislo, snizuje to cost. Jestli je to nejaka vyspelejsi db, bude mozne vyhnout se subselectu nejakou statistickou nebo agregacni funkci, nicmene jestli je to vyhodnejsi nebo ne asi bude treba vyzkouset.

    Reseni s triggerem neni podle me nejlepsi, protoze to zbytecne bude prochazet tabuli a updatovat predchozi zaznam a spomali to dobu insertu -> prodlouzi dobu zamku nad tabulkou

    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.