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 22:55 | Zajímavý článek

Murilo Pereira v obsáhlém textu Jak otevřít soubor v Emacsu nejprve zkoumá Emacs jako prostředí pro vývoj na vzdáleném serveru, a pak se dostává k úvahám nad filosofií textových editorů, jejich vývojem a vůbec rozhraními člověk-počítač. Některé kapitoly také zveřejnil samostatně: např. Hodnoty Emacsu, revoluce Neovimu a gorila VSCode.

Fluttershy, yay! | Komentářů: 2
dnes 16:11 | Komunita

Konference InstallFest 2021 proběhne online o víkendu 6. a 7.března 2021. Vyhlášeno bylo CFP. Přihlásit přednášku nebo workshop lze do 2. února 2021.

Ladislav Hagara | Komentářů: 0
dnes 15:44 | Nová verze

Po roce a půl vývoje byla vydána nová verze 3.9.0.0 svobodného toolkitu určeného pro stavbu softwarově definovaných rádií (SDR) GNU Radio (Wikipedie). Přehled novinek na stránkách projektu a na GitHubu.

Ladislav Hagara | Komentářů: 0
dnes 14:22 | Zajímavý článek

Mozilla.cz se věnuje novinkám ve Firefoxu 85, který vyjde příští týden. Po technické stránce bude velkou novinkou dělení mezipaměti (tzv. cache partitioning). Za cenu potenciálního zpomalení načítání některých stránek a zvýšeného síťového provozu budou odděleny mezipaměti pro každý server. Sledující prvky tak nebudou moci z dostupnosti konkrétních jiných prvků v mezipaměti vysledovat, jestli byly některé stránky dříve

… více »
Ladislav Hagara | Komentářů: 20
dnes 13:33 | Zajímavý článek

Nejnovější publikace, jež rozšířila knižní řadu Edice CZ.NIC, nese název Unity – První seznámení s tvorbou počítačových her. Jejím autorem je pedagog a programátor Tomáš Holan, který pojal svou knihu jako průvodce pro ty, kteří by se chtěli s tímto nástrojem pro tvorbu 2D i 3D počítačových her seznámit, ale nevědí, odkud začít. Elektronická verze knihy je k dispozici volně ke stažení ve formátech PDF (2,7 MB), EPUB (7,9 MB) a MOBI (19,6 MB). Tištěné vydání si mohou zájemci koupit u většiny knihkupců.

Ladislav Hagara | Komentářů: 2
včera 18:33 | Bezpečnostní upozornění

Dětičky pod dozorem táty zkoušely hacknout tátův uzamčený počítač se Cinnamonem. Povedlo se jim to pouhým náhodným klikáním na virtuální klávesnici na obrazovce. Táta chybu nahlásil a je již opravena. Kliknutím na písmeno "ē" na virtuální klávesnici bylo možné shodit screensaver a tím obejít přihlašování.

Ladislav Hagara | Komentářů: 29
včera 10:00 | Nová verze

Byla vydána nová stabilní verze 1.10.0 distribučního frameworku Flatpak (Wikipedie), tj. technologie umožňující distribuovat aplikace v podobě jednoho instalačního souboru na různé linuxové distribuce a jejich různá vydání. Přehled novinek na GitHubu. Zdůrazněn je nový efektivnější formát repozitáře. Řešena je také bezpečnostní chyba CVE-2021-21261. Aktuálně lze z Flathubu, tj. centrálního repozitáře pro Flatpaky, nainstalovat 1 031 aplikací.

Ladislav Hagara | Komentářů: 1
16.1. 10:00 | Komunita

Společnost PINE64 stojící za telefonem PinePhone, notebooky Pinebook a Pinebook Pro, IP kamerou PineCube, hodinkami PineTime, páječkou (pájecím perem) Pinecil, zdroji PinePower nebo RISC-V vývojovou deskou PineCone publikovala na svém blogu lednový souhrn novinek. Opět společně s videem (YouTube, LBRY, TILvids). Od 18. ledna bude možné objednat PinePhone s předinstalovaným Mobianem aneb Debianem pro mobilní zařízení.

Ladislav Hagara | Komentářů: 27
16.1. 09:00 | Nová verze

Byla vydána nová verze 3.6 svobodného notačního programu MuseScore (Wikipedie). Představení novinek také na YouTube. Zdůrazněn je nový font Leland. Jeho představení na YouTube.

Ladislav Hagara | Komentářů: 0
15.1. 18:44 | Zajímavý projekt

Fedora Magazine představil projekt Fedora Kinoite aneb Fedoru Silverblue s prostředím KDE Plasma. Fedora Silverblue je neměnný systém s atomickými aktualizacemi, tj. základní systém je distribuován jako celek, s prostředím GNOME.

Ladislav Hagara | Komentářů: 4
Jestliže používáte distribuci CentOS, kterou náhradu plánujete vzhledem k oznámenému ukončení vydávání?
 (30%)
 (3%)
 (2%)
 (23%)
 (0%)
 (2%)
 (41%)
Celkem 158 hlasů
 Komentářů: 3, poslední 10.1. 13:01
Rozcestník

Dotaz: Mysql dotaz vezme 100% vykonu SQL serveru

30.7.2019 10:16 RadekXxX | skóre: 7
Mysql dotaz vezme 100% vykonu SQL serveru
Přečteno: 1100×
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: 13 | 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: 7
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: 7
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: 61 | 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: 69 | 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: 62 | 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: 45 | 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: 7
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á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.