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í
×
    včera 23:44 | Nová verze

    Byla vydána nová verze 2.56.0 distribuovaného systému správy verzí Git. Přispělo 104 vývojářů, z toho 39 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 21:22 | Bezpečnostní upozornění

    Hackerská skupina ShinyHunters oznámila průnik do informačních systémů FBI, prostřednictvím zero-day zranitelnosti v platformě Oracle PeopleSoft, kterou úřad využívá mimo jiné pro náborový portál FBIJobs.gov. Útočníci tvrdí, že získali až 3 TB dat o současných i bývalých zaměstnancích a uchazečích o práci. Jako důkaz zveřejnili vzorek přibližně 5 000 záznamů obsahující jména, adresy, telefonní čísla, data narození, čísla

    … více »
    AfD 💙 | Komentářů: 1
    včera 21:11 | Zajímavý článek

    Doba kompilace linuxového jádra se díky rychlejšímu hardwaru a optimalizacím kbuildu snižuje k deseti sekundám. Nejnovější patche Lorenza Stoakse (vznikají i s pomocí SI) zkrátily na testovacím stroji dobu sestavení z dlouhých 22 vteřin na pouhých 15, a to bez použití RAMdisku. Testovací systém tvořily dva procesory AMD EPYC 9575F (oba dohromady poskytují celkem 128 jader a 256 vláken), čtyřiadvacet 64GB DDR5-6400 paměťových modulů a

    … více »
    AfD 💙 | Komentářů: 3
    včera 01:33 | Komunita

    Před rokem a půl vývojáři postmarketOS informovali, že pro projekt hledají nové jméno. Včera bylo oznámeno: postmarketOS se nově jmenuje Nura.

    Ladislav Hagara | Komentářů: 5
    27.9. 13:44 | Zajímavý projekt

    Hra Factorio dorazila na Printables. Hned teď si můžete stáhnout 65 různých modelů a nechat celou mimozemskou planetu oživnout na svém stole.

    Ladislav Hagara | Komentářů: 13
    26.9. 19:22 | Nová verze

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

    Ladislav Hagara | Komentářů: 0
    25.9. 23:33 | Humor

    Prezident USA Donald Trump během svého projevu na valném shromáždění OSN 22. září 2026 prohlásil, že umělá inteligence 'bude dále oficiálně nazývána superinteligencí', zkráceně SI. Svůj návrh zdůvodnil takto: 'Použití slova artificial činí inteligenci falešnou. Ona falešná není, ve skutečnosti je úžasná'. Zároveň ve svém proslovu prohlásil, že Spojené státy kategoricky odmítají jakékoliv pokusy o vytvoření 'globalistického

    … více »
    AfD 💙 | Komentářů: 26
    25.9. 23:22 | Nová verze

    Čínská technologická firma Xiaomi představila novou verzi 2.6 svého modelu MiMo, váhy modelů MiMo‑V2.6‑Pro‑RL a MiMo‑V2.6‑Flash‑RL jsou dostupné na HuggingFace pod licencí MIT. Výkonnější varianta Pro má přes bilion parametrů, z toho 42 miliard aktivních, úspornější Flash 309 miliard parametrů, z nichž se při generování aktivuje přibližně 15 miliard. Oba modely mají délku kontextového okna milion tokenů. Tyto MoE modely zvládají

    … více »
    AfD 💙 | Komentářů: 0
    25.9. 03:33 | Komunita

    Proběhl Snapdragon Summit 2026. Společnost Qualcomm se mimo jiné pochlubila během Linuxu na čipech Snapdragon X2. Zatím pouze v ranní verzi vhodné pro vývojáře linuxových distribucí a přispěvatele do jádra Linux.

    Ladislav Hagara | Komentářů: 0
    24.9. 21:11 | Nová verze

    Byla vydána nová verze 2.0 klienta F-Droid určeného pro instalaci bezplatných a otevřených mobilních aplikací do Androidu ze softwarového repozitáře F-Droid (Wikipedie). Jedná se o alternativu k Google Play.

    Ladislav Hagara | Komentářů: 7
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2742 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Mysql dotaz vezme 100% vykonu SQL serveru

    30.7.2019 10:16 RadekXxX | skóre: 10
    Mysql dotaz vezme 100% vykonu SQL serveru
    Přečteno: 1622×
    Ahoj, mam SQL dotaz:

    SELECT HwTime, Person_Id, Description, Direction FROM Events WHERE (System = "0") AND (Direction <> "2") AND (Exist = "1") AND (HwTime IN(SELECT MAX(HwTime) FROM Events WHERE (Exist = "1") AND (Direction <> "2") AND (System = "0") GROUP BY Person_Id)) ORDER BY Name ASC

    kdyz ho spustim, tak se muze provadet treba hodinu, "show processlist" ukazuje status "Sending data", tabulka obsahuje asi 50000 zaznamu a vysledek ma asi 1300 radku, tento sql dotaz funguje na desitkach serveru, kdyz udelam dump databaze, vezmu konfiguracni soubor databaze a testuji na jinem mysql nebo mariadb serveru tak mam kompletni odpoved za 0.3 sec, ale na tomto serveru se odpovedi nedockam, kdyz pridam LIMIT 1, tak odpoved trva asi 2 sec, kdyz zvedam LIMIT, tak me prijde, ze delka odpovedi se zveda temer exponencialne.

    SQL dotaz ma z tabulky vypsat jedenkrat kazde Person_Id, ktere ma nejaktualneji hodnotu HwTime.

    Zajimalo by me, jak dotaz polozit jinak, aby fungoval, ale soucasne take proc nefunguje jenom na jednom konkretnim serveru.

    Odpovědi

    30.7.2019 12:23 Lyco | skóre: 14 | blog: Lyco
    Rozbalit Rozbalit vše Re: Mysql dotaz vezme 100% vykonu SQL serveru
    Jaký je EXPLAIN? Jaký je na ostatních serverech? Jaký je použitý storage engine? Je na tom serveru nějaká další zátěž? Jaká?
    Příspěvek se rázem stává až o 37,5 % pravdivější, je-li pod ním napsáno reálné jméno.
    30.7.2019 15:16 RadekXxX | skóre: 10
    Rozbalit Rozbalit vše Re: Mysql dotaz vezme 100% vykonu SQL serveru
    Explain vraci toto:
    +----+--------------------+--------+-------+---------------+------+---------+------+-------+-----------------------------+
    | id | select_type        | table  | type  | possible_keys | key  | key_len | ref  | rows  | Extra                       |
    +----+--------------------+--------+-------+---------------+------+---------+------+-------+-----------------------------+
    |  1 | PRIMARY            | Events | ALL   | NULL          | NULL | NULL    | NULL | 54216 | Using where; Using filesort |
    |  2 | DEPENDENT SUBQUERY | Events | index | NULL          | ESD  | 19      | NULL |  7015 | Using where                 |
    +----+--------------------+--------+-------+---------------+------+---------+------+-------+-----------------------------+
    
    Na serveru (ktery je vyrazne mene vykonejsi), kde se dotaz vykonava bez problemu je explain:
    +------+--------------+-------------+--------+---------------+--------------+---------+----------------------------+-------+------------------------------+
    | id   | select_type  | table       | type   | possible_keys | key          | key_len | ref                        | rows  | Extra                        |
    +------+--------------+-------------+--------+---------------+--------------+---------+----------------------------+-------+------------------------------+
    |    1 | PRIMARY      | Events      | ALL    | HwTime        | NULL         | NULL    | NULL                       | 52579 | Using where; Using filesort  |
    |    1 | PRIMARY      | subquery2   | eq_ref | distinct_key  | distinct_key | 5       | Events.HwTime              |     1 |                              |
    |    2 | MATERIALIZED | Events      | ALL    | NULL          | NULL         | NULL    | NULL                       | 52579 | Using where; Using temporary |
    +------+--------------+-------------+--------+---------------+--------------+---------+----------------------------+-------+------------------------------+
    
    Na serveru bezi pouze MySQL, pokud se nespusti tento dotaz, tak je zatizeni do 2%, po spusteni stoupne zatizeni na 50% a pri spusteni dvou techto pozadavku je to 100%, pameti je volne vice jak 3GB. Storage je InnoDB, pred tim byl pouzit MyISAM, ale ten pri spusteni scriptu mel zase ve vypisu procesu "waiting for table level lock"
    30.7.2019 19:30 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Mysql dotaz vezme 100% vykonu SQL serveru
    Můžete tam mít jiné indexy, mohou jinak vycházet statistiky, podle kterých se plánuje použití indexů. Může tam být jiná verze databázového stroje, která prostě na základě stejných vstupů zvolí jiný prováděcí plán. Zkusil bych zkontrolovat indexy, zda jsou stejné a zda s nimi není nějaký problém, a nechal bych přepočítat statistiky.
    30.7.2019 22:12 RadekXxX | skóre: 10
    Rozbalit Rozbalit vše Re: Mysql dotaz vezme 100% vykonu SQL serveru
    Problemovy server obsahuje standartni balik z Debianu, mysql v5.5.62,

    bezene se provozuje server na Win. v5.6.11 (tam to chodi)

    navic jsem testoval MariaDb v10.1.38 v Debianu (taky chodi)

    navic mysql v5.5.33 v Debianu (taky chodi), tato verze db je nejstarsi

    Indexy jsou definovany stejne, udelal jsem mysqldump konkretni databaze, ty indexy jsou i vtom dumpu videt.

    Kazdopadne reseni to ma, jak jsem psal nize, zmena SQL dotazu, jenom me zajimalo, jak muze vzniknout takovy rozdil 0,5sec vs. nekolik hodin u identickych dat akorat jiny stroj.
    31.7.2019 07:56 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Mysql dotaz vezme 100% vykonu SQL serveru
    Příčina, proč je to tak rozdílné, jsou ty rozdílné prováděcí plány. Některé důvody, proč se mohou prováděcí plány lišit, jsem napsal v předchozím komentáři.
    31.7.2019 07:56 Peter Golis | skóre: 65 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Mysql dotaz vezme 100% vykonu SQL serveru
    Dosť často sa také niečo stávalo ak chýbali indexy, neboli dobre použité indexy, alebo sa zdrojové dáta nedokázali korektne prečítať z disku. Možnosť že by sa nezmestilo 50k údajov aj s indexami do RAM asi môžeme vylúčiť.

    PS: Tie časy, keď ľudia museli uzavrieť v selekte index pomocou doplnenia nezmyselnej podmienky (and 1=1) by mali byť už dávno pasé, i keď to riešenie s pozmeneným selektom môže nasvedčovať niečomu podobnému.
    31.7.2019 22:37 ET
    Rozbalit Rozbalit vše Re: Mysql dotaz vezme 100% vykonu SQL serveru
    mne se to nejak nezda, postni sem vystup "show create table Events" ze zdraveho a "rozbiteho" stroje :)
    Max avatar 30.7.2019 13:30 Max | skóre: 73 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Mysql dotaz vezme 100% vykonu SQL serveru
    Takto triviální dotaz musí běžet jedna dva. CPU může vyletět kvůli zmršenému IO na storage.
    Zdar Max
    Měl jsem sen ... :(
    30.7.2019 13:39 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Mysql dotaz vezme 100% vykonu SQL serveru
    Nechybí na tom daném serveru indexy? Právě výstup explain je potřeba, jak již tu bylo zažádáno.
    30.7.2019 14:04 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Mysql dotaz vezme 100% vykonu SQL serveru
    Zkusil bych tuto variantu:
    SELECT MAX(HwTime) AS HwTime, Person_Id, E.Description, E.Direction
        FROM Events JOIN Event as E ON (Person_Id = E.Person_Id) AND (HwTime = E.HwTime)
        WHERE (Exist = "1") AND (Direction <> "2") AND (System = "0")
        GROUP BY Person_Id
        ORDER BY Name ASC
    
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    30.7.2019 15:20 RadekXxX | skóre: 10
    Rozbalit Rozbalit vše Re: Mysql dotaz vezme 100% vykonu SQL serveru
    Hral jsem si stim a tato formulace dotazu vraci vysledek za 0,5 sec
    SELECT k.HwTime, k.Person_Id, k.Description, k.Direction FROM Events AS k
      JOIN (SELECT Person_Id, MAX(HwTime) AS max_HwTime FROM Events WHERE (Exist=1 AND Direction <> 2 AND System=0) GROUP BY Person_Id) AS g
      ON (k.Person_Id = g.Person_Id AND k.HwTime = g.max_HwTime) GROUP BY k.Person_Id, k.HwTime ORDER BY k.Name ASC
    

    Založit nové vlákno • Nahoru

    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.