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 14:33 | Humor

    Copilot automaticky vkládal do pull requestů 'propagační tipy', reklamní text se na GitHubu objevil ve více než jedenácti tisících pull requestech. Po vlně kritiky byla tato funkce zablokována a produktový manažer Tim Rogers připustil, že umožnit Copilotovi upravovat cizí pull requesty bez vědomí autorů byla chyba.

    NUKE GAZA! 🎆 | Komentářů: 4
    včera 12:55 | Upozornění

    Je 31. března a tedy Světový den zálohování (World Backup Day). Co by se stalo, kdyby Vám právě teď odešel počítač, tablet nebo telefon, který používáte?

    Ladislav Hagara | Komentářů: 4
    včera 12:44 | Upozornění

    Digitální a informační agentura (DIA) přistupuje ke změně formátu důvěryhodného seznamu České republiky z verze TLv5 na verzi TLv6, která nastane 29. dubna 2026 v 00:00 (CET). Ke změně formátu důvěryhodných seznamů členských států (tzv. Trusted Lists) dochází na základě změn příslušné unijní legislativy. Důvěryhodné seznamy se používají v rámci informačních systémů a aplikací zejména pro účely ověřování platnosti elektronických

    … více »
    Ladislav Hagara | Komentářů: 2
    včera 05:00 | Nová verze

    Rspamd (Wikipedie), tj. open source systému pro filtrování nevyžádané pošty, byl vydán v nové major verzi 4.0.0. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 1
    30.3. 23:11 | Nová verze

    SolveSpace (Wikipedie), tj. multiplatformní open source parametrický 2D/3D CAD, byl vydán v nové verzi 3.2. Přehled novinek v Changelogu na GitHubu. Vyzkoušet lze novou oficiální webovou verzi.

    Ladislav Hagara | Komentářů: 8
    30.3. 18:22 | Pozvánky

    Organizátoři Dne IPv6, tradiční akce věnované tématům spojeným s tímto protokolem, vyhlásili Call for Abstracts. Na webu konference mohou zájemci přihlašovat příspěvky o délce 20 nebo 40 minut či 10minutové lighting talky a to až do 30. dubna. Tvůrci programu uvítají návrhy přednášek z akademického i komerčního sektoru, které mohou být technického i netechnického zaměření. Den IPv6 se letos uskuteční 4. června a místem konání bude i

    … více »
    VSladek | Komentářů: 12
    30.3. 15:00 | Zajímavý software

    Euro-Office (Wikipedie) je evropský fork open source kancelářského balíku OnlyOffice. Za forkem stojí koalice firem IONOS, Nextcloud, Eurostack, XWiki, OpenProject, Soverin, Abilian a BTactic. Cílem je zajistit digitální suverenitu Evropy a snížit závislost na neevropských platformách. Projekt vznikl mimo jiné v reakci na nedávné uzavření cloudové služby OnlyOffice. OnlyOffice obviňuje Euro-Office z porušení licenčních podmínek. Na možné problémy upozorňuje i Collabora Online. Jednostranná změna licence není v pořádku.

    Ladislav Hagara | Komentářů: 27
    30.3. 05:11 | Komunita

    Byly zpracovány a na YouTube zveřejněny videozáznamy jednotlivých přednášek z letošního Installfestu.

    Ladislav Hagara | Komentářů: 0
    30.3. 00:22 | Komunita

    Během akce Arduino Days 2026 byl publikován Arduino Open Source Report 2025 (pdf) a oznámeno 7 nových produktů kompatibilních s deskou UNO Q (Arduino USB-C Power Supply, USB-C Cable, USB-C Hub, UNO Media Carrier, UNO Breakout Carrier, Bug Hopper, Modulino LED Matrix).

    Ladislav Hagara | Komentářů: 1
    29.3. 20:22 | IT novinky

    Google v pátek spustil v Česku Vyhledávání Live. Tato novinka umožňuje lidem vést plynulou konverzaci s vyhledávačem v češtině. A to prostřednictvím hlasu, nebo prostřednictvím toho, na co ukážou svým fotoaparátem či kamerou v mobilu. Rozšíření této multimodální funkce je možné díky nasazení Gemini 3.1 Flash Live, nového hlasového a audio modelu, který je od základu vícejazyčný, takže umožňuje lidem po celém světě mluvit na vyhledávač přirozeně a v jazyce, který je jim nejbližší.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (14%)
     (23%)
    Celkem 1196 hlasů
     Komentářů: 29, poslední včera 11:17
    Rozcestník

    Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?

    18.8.2011 21:12 | Přečteno: 1990× | Linux | poslední úprava: 18.8.2011 21:10

    V tomto zápisku se prvně přiznám, že s direktivou Apache HostnameLookups jste měli nakonec pravdu nakonec vy. Původní příčina byla zapnutém firewallu ve Fedoře 15, u něhož se mi nepodařilo jeho zakázání obvyklým příkazem chkconfig, díky novém systemd. Za druhé se chci ale zamyslet na výše uvedeným příkazem v MySQL.

    Na první pohled se totiž jedná o velice užitečný příkaz, který zřetězí pomocí zadaného oddělovače záznamy zesumarizované pomocí GROUP BY. Hodit se může např. v případě, že GROUPujeme např. podle uživatelského jména a chceme zjistit jestli v DB není jméno duplikované, takže si pomocí GROUP CONCAT(user_id) AS uid vypíšeme např.:
    user1 | 14,21,35
    filbar | 22,675
    .
    .
    .
    atd.
    
    Jenomže to má jeden dooooost podstatný háček, velikost vráceného řetězce je ve výchozím stavu omezena na POUHÝCH 1024 znaků (přenastavit se dá v konfigu). Nechápu k čemu vůbec toto omezení existuje :-O. To má sloužit jako nějaká optimalizace, nebo proč? V každém případě nechápu proč vývojaři MySQL takto užitečnou funkci tak zbytečně pokazili.

    BTW. Než jsem to dneska odpoledne odhalil, tak jsem ztratil dobré 2 hodiny času.        

    Hodnocení: 67 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    18.8.2011 21:30 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    Hodit se může např. v případě, že GROUPujeme např. podle uživatelského jména a chceme zjistit jestli v DB není jméno duplikované

    To můžete zjistit snáz třeba pomocí

      select NAME,count(ID) as CNT from TT group by NAME having COUNT(ID)>1
    

    nebo (lépe) rovnou ten sloupec deklarovat jako unique.

    Jenomže to má jeden dooooost podstatný háček, velikost vráceného řetězce je ve výchozím stavu omezena na POUHÝCH 1024 znaků (přenastavit se dá v konfigu). Nechápu k čemu vůbec toto omezení existuje :-O. To má sloužit jako nějaká optimalizace, nebo proč?

    Zřejmě to bude souviset s implementací té agregační funkce a její návratové hodnoty. Na druhou stranu, pokud vám taková délka nestačí, je více než pravděpodobné, že to, o co se snažíte, bude vhodnější dělat úplně jinak. Tahle agregační funkce slouží k usnadnění práce při generování jednoduchých výpisů, ne k tomu, abyste pomocí ní lámal něco, co pravděpodobně půjde daleko lépe vyřešit nějakým joinem.

    19.8.2011 09:52 Epik
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    Já velikost GROUP_CONCAT upravuji sql dotazem SET SESSION group_concat_max_len = xx;
    19.8.2011 11:26 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    odit se může např. v případě, že GROUPujeme např. podle uživatelského jména a chceme zjistit jestli v DB není jméno duplikované, takže si pomocí GROUP CONCAT(user_id) AS uid vypíšeme např.:
    No nevím, nějaký index, nebo něco podobného by asi bylo mnohem rozumnější, než to řešit na aplikační úrovni...
    19.8.2011 14:00 CEST
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    Rekl bych, ze tvuj problem bude podobneho razeni jako problem s Apachem. Nakonec zjistis, ze to delas spatne a da se to delat naprosto jinak. Tvuj priklad se zjistovanim duplicit to primo potvrzuje.

    Jinak, cti manualy, ne nejaky lammersky priklady, co najdes pres google - predpokladam, ze jsi nasel nejakej priklad, kde mel manik tabulku s 10 zaznamama a max. 3 mel duplictni a tys to same pouzil na nejakou tvoji tabulku s milionem zaznamu a tisicovkama duplicit.

    V manualu je primo napsane
    You can set a maximum allowed length with the group_concat_max_len system variable. (The default value is 1024.)
    Osobne bych duplicity taky radsi hledal spis pomoci having.
    19.8.2011 14:14 gabakuk
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    Hodit se může např. v případě, že GROUPujeme např. podle uživatelského jména a chceme zjistit jestli v DB není jméno duplikované

    Pane kolego, prestante vymyslet picoviny a radeji se venujte studium sql, indexu, klicu a normalovych forem.
    19.8.2011 14:28 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    Tu aplikaci jsem nenavrhoval já.
    20.8.2011 15:31 Nemo7
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    >> prestante vymyslet picoviny

    1) Nejsem autor dotazu. 2) Pokud takto jednáte v životě, tak se divím, že s vámi ještě někdo komunikuje. 3) Při návrhu DB znám pouze NORMÁLNÍ formy, ne normálové. Poučte neznalého, rád se něco dozvím. :-)

    http://interval.cz/clanky/databaze-a-jazyk-sql/
    21.8.2011 00:03 nyan
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?

    Co se tyce MySQL, muj osobni pocit je ze blysti se tam toho hodne, ale zlata je tam asi jak v Ankh-Morporskem tolaru :)

    Za posledni 1/2 rok sem stravil neuveritelne mnozstvi casu prochazenim manualu MySQL ve snaze vyresit ruzne veci. Vetsina featur MySQL se nese v tomto duchu: "MySQL ve verzi X ma novou skvelou featuru Y. .... nasleduje popis featury .... prosim prectete si omezeni tedle featury tady ..." a link na trikrat delsi popis omezeni featury.

    Priklad co sem resil: mam tabulku a protoze bude mit moc radku (v radech milionu) chci udelat partitioning. Tabulka "t", primarni klic "id" auto increment, cizi klic "y_id", foreign key constraint nad y_id, par dalsich sloupcu.

    Ja: create table... partition by list(y_id)
    MySQL: partition tabulka nemuze mit foreign key constraint
    Ja: ok, cert vem integritu, znovu bez foreign key
    MySQL: kazdy sloupec z partition key musi byt soucast primary key.
    Ja: WTF ? co je todle za .... ? no nic tak udelam slozeny primary key (y_id, id)
    MySQL: Nemuzete mit auto_increment nad jednim sloupcem slozeneho primary key
    Ja: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

    ... Kdyz nechcete prijit o nervy, vyhnete se MySQL obloukem.

    Josef Kufner avatar 21.8.2011 11:40 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    MySQL je jednoduchá a hloupučká databáze a podle toho se s ní musí jednat. Kdybys v druhém kroku vyhodil místo foreign key onu partition část, tak bys měl po problému. A nebo jsi to prostě jen dělal blbě ;-)
    Hello world ! Segmentation fault (core dumped)
    21.8.2011 13:58 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    Základní problém MySQL je v Linuxu. Linuxové distribuce běžně obsahuje MySQL několika let staré verze.

    Holt než to projde linuxovým kolečkem ód objevení se nové verze poté, než to distribuce zabalí, otestují, než se otestuje celá distribuce a stane se stable, tak je v MySQL i roky zastaralá verze.

    Oracle na MySQL zapracoval a vůbec ne špatně. A možná v příštím tisíciletí se dostanou tyto verze do Linuxu.

    Schválně připiště na jeké verzi MySQL pracujete a bude jasno.
    okbob avatar 21.8.2011 18:39 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    No jestli to není tím, že v MySQL se zasekli na 5.1 a 5.5 je teprve letošní záležitost? Nic produkčního mezitím nevyšlo, když nepočítám 5.4, která se vydávala narychlo ještě v Sunu (a spíš ze strachu, jak dopadne MySQL v Oraclu).

    21.8.2011 16:48 nyan
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    Kdybys v druhém kroku vyhodil místo foreign key onu partition část, tak bys měl po problému.
    Podstata cviceni byla zavest partitioning. Zkouseli ste nekdy vymazat 5M radku z tabulky co jich ma 25M ? Kdyz je mate v partitionech, dropnuti jedne partition je prakticky okamzite.
    A nebo jsi to prostě jen dělal blbě ;-)
    Nemyslim. AFAIK vsechno na co sem narazil jsou dokumentovane omezeni, neboli gotcha
    21.8.2011 13:52 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    1) čtením manuálu bysis ušetřil 2 hodiny času, stejně tak jak dělání hlupáka ze sebe na tomto blogu.

    SET [GLOBAL | SESSION] group_concat_max_len = nový_limit_pro_group_concat;

    Stačí použít jednou po navázání spojení a je po problému.

    Stačí se naučit číst, slabikář určitě někde od učitelky první základní třídy seženeš jako první kroky k tomu naučit se číst manuály. Pokud nakoukneš do manuálu, problém je vyřešen do minuty.
    21.8.2011 13:58 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    Manuál jsem tak detailně nezkoumal, protože jsem nečekal, že by databáze měla co ořezávat výsledky a o tom tento zápisek je, že databáze má data vracet tak jak jsou v ní uložena a ne dělat na nich nějaké nepochopitelné ořezávání.
    21.8.2011 14:02 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    A nějaká bezpečnost a snaha nepřetížit databázi Vám nic neříká?

    Zkuste si příště přečíst ten manuál a nehrát si ředitele zeměkoule co by jiné věci měly dělat. Bude to rozhodně užitečnější.
    21.8.2011 14:07 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    Databázi můžu přetížit i obyčejným SELECTem, když ho napíšu špatně.
    21.8.2011 15:32 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    Když jste přesvědčen, že je to tak jednoduché, tak proč to neimplementujete? Pokud to bude fungovat, vývojáři budou IMHO jedině rádi…
    21.8.2011 19:47 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Není všechno zlato, aneb k čemu je v MySQL GROUP_CONCAT ?
    Boha, kdysi jsem narazil na jedné (raději nejmenované) databázi na "problém", že IN (1, 2, 3, atd.) klauzule mohla obsahovat nanejvýš 1024 prvků. To bys taky odsoudil? :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.

    Založit nové vláknoNahoru

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