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 17:22 | Komunita

    Singularity (YouTube) je nejnovější otevřený film od Blender Studia. Jedná se o jejich první 4K HDR film.

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

    Vyšla hra Život Není Krásný: Poslední Exekuce (Steam, ProtonDB). Kreslená point & click adventura ze staré školy plná černého humoru a nekorektního násilí. Vžijte se do role zpustlého exekutora Vladimíra Brehowského a projděte s ním jeho poslední pracovní den. Hra volně navazuje na sérii Život Není Krásný.

    Ladislav Hagara | Komentářů: 1
    včera 14:00 | Zajímavý projekt

    Společnost Red Hat představila Fedora Hummingbird, tj. linuxovou distribuci s nativním kontejnerovým designem určenou pro vývojáře využívající AI agenty.

    Pinhead | Komentářů: 4
    včera 02:22 | Zajímavý software

    Hru The Legend of Zelda: Twilight Princess od společnosti Nintendo si lze nově díky projektu Dusklight (původně Dusk) a reverznímu inženýrství zahrát i na počítačích a mobilních zařízeních. Vyžadována je kopie původní hry (textury, modely, hudba, zvukové efekty, …). Ukázka na YouTube. Projekt byl zahájen v srpnu 2020.

    Ladislav Hagara | Komentářů: 0
    včera 01:11 | Nová verze

    Byla vydána nová major verze 29.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Detailní přehled novinek na GitHubu.

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

    Po zranitelnostech Copy Fail a Dirty Frag přichází zranitelnost Fragnesia. Další lokální eskalace práv na Linuxu. Zatím v upstreamu neopravena. Přiřazeno ji bylo CVE-2026-46300.

    Ladislav Hagara | Komentářů: 1
    13.5. 14:00 | Komunita

    Sovereign Tech Agency (Wikipedie) prostřednictvím svého fondu Sovereign Tech Fund podpoří KDE částkou 1 285 200 eur.

    Ladislav Hagara | Komentářů: 7
    13.5. 12:55 | IT novinky

    Google na včerejší akci The Android Show | I/O Edition 2026 (YouTube) představil celou řadu novinek: Gemini Intelligence, notebooky Googlebook, novou generaci Android Auto, …

    Ladislav Hagara | Komentářů: 0
    13.5. 12:33 | IT novinky

    Evropská komise by do léta mohla předložit návrh normy omezující používání sociálních sítí dětmi v zájmu jejich bezpečí na internetu. Prohlásila to včera předsedkyně EK Ursula von der Leyenová, podle níž řada zemí Evropské unie volá po zavedení věkové hranice pro sociální sítě. EU částečně řeší bezpečnost dětí v digitálním prostředí v již platném nařízení o digitálních službách (DSA), podle německé političky to však není dostatečné a

    … více »
    Ladislav Hagara | Komentářů: 48
    13.5. 04:11 | Nová verze

    Multiplatformní open source aplikace scrcpy (Wikipedie) pro zrcadlení připojeného zařízení se systémem Android na desktopu a umožňující ovládání tohoto zařízení z desktopu, byla vydána v nové verzi 4.0.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (13%)
     (8%)
     (2%)
     (14%)
     (31%)
     (4%)
     (6%)
     (3%)
     (16%)
     (25%)
    Celkem 1617 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: Detekce neexistence zaznamu v poli

    5.8.2006 20:16 Crempa
    Detekce neexistence zaznamu v poli
    Přečteno: 68×
    Zdravim, mam nasledujici problem... mam pole s MAC adresami a v databazi tabulku kde jeden sloupec obsahuje taktez MAC adresy. No a potreboval bych u zaznamu v databazi jejichz MAC adresa nema protejska v tom poli (nevyskytuje se v tom poli) nastavit priznak (v jinem sloupci) rekneme na 0. Pole taktez muze obsahovat adresy, ktere v databazi nejsou a ty by se meli pridat. Napadlo me nekolik cest

    1) pro kazdou polozku z databaze projit cele pole a pokud se v nem adresa nevyskytuje nastavit priznak (to me prijde jako silne pomale a nevhodne reseni)

    2) v databazi nastavit vsechny priznaky na 0 a postupne prochazet pole s tim ze budu nastavovat priznaky na 1 (ty co zbudou s 0 nemaji v poli protejska) (u teto metody me zas prijde ze se prilis zatezuje databazi)

    3) vytvorit z pole nejakopu temp tabulku a problem resit na urovni databaze (napriklad pomoci procedur a kursoru - v teto oblasti se vsak zas tak neorientuju)

    Takze se ptam, jak by jste to resily Vy? Diky za reakce

    ps: konkretne se jedna o pole objektu takze napriklad napad prevest tabulku na pole a pote provest rozdil poli bude tezko fungovat, mimoto potrebuji krome stavu updatovat i dalsi informace, mluvime o tabulce s cca 1000 zaznamy...

    Odpovědi

    bazil avatar 5.8.2006 21:48 bazil | skóre: 33 | blog: sluje | Miroslav
    Rozbalit Rozbalit vše Re: Detekce neexistence zaznamu v poli
    a bylo by dobré uvést o jakou databázi se jedná a v jakém jazyku se to má provést ...
    5.8.2006 22:02 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Detekce neexistence zaznamu v poli
    Optimální řešení bude záležet na tom, jak velká je ta tabulka v databázi, kolik je položek v tom poli, jak rychlá je komunikace s tou databází a jestli je to pole seřazené (nebo oindexované). Např. pokud je to pole seřazené a na tabulce máte index, dá se to triviálně udělat v čase lineárním vůči maximu z velikostí těch dvou.
    5.8.2006 22:06 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Detekce neexistence zaznamu v poli
    Pokud je ta databáze SQL, potom se mi to třetí řešení jeví jako nejrozumnější. Jenom to bude vyžadovat se naučit procedurální jazyk té které databáze.
    When your hammer is C++, everything begins to look like a thumb.
    5.8.2006 22:17 Tunop
    Rozbalit Rozbalit vše Re: Detekce neexistence zaznamu v poli
    Nechtel jsem ten dotaz zatezovat konkretni technologii, ale jedna se o PHP a MySQL takze nelze pocitat s zadnymi vyspelejsimi funkcemi. MySQL je tedy ve v5.xxx takze procedury zvladat bude. Kazdopadne zas nevim jestli je to posledni reseni uplne 100% protoze pole bude vetsinou obsahovat vetsinu polozek te databaze takze pro kazdy pruchod by bylo nutne vlozit najednou celou novou tabulku...
    bazil avatar 5.8.2006 23:27 bazil | skóre: 33 | blog: sluje | Miroslav
    Rozbalit Rozbalit vše Re: Detekce neexistence zaznamu v poli
    tak v tom pripade bych pouzil zpusob 2, oindexoval bych si v DB pole z MAC(nevim jestli je kuli vasemu reseni potreba pokazde nastavovat vsechny priznaky u mac na 0(UPDATE macadresy SET priznak=0), ale pripadne bych to nastavil, zaroven pro celou DB to bude chvilka) a potom bych updatoval jednotlive mac z DB(diky indexaci to bude co nejrychlejsi) a pripadne nastavil 1 pokud se nalezne(na tohle by bylo dobre pouzit neco jako UPDATE macadresy SET priznak=1 WHERE mac='00:00:00:00:00:00') a pak bych si jeste zaroven v php zjistoval jestli bylo neco updatovano mysql_affected_rows() a kdyz ne, tak bych si bud pridal v tom obektu jeste jedno pole, kde by byly oznaceny mac adresy, ktere je potreba potom pridat a nebo raci bych si vytvoril nove pole obektu, kde se ulozi jen ty mac adresy, ktere je potreba pridat.
    5.8.2006 23:48 Tunop
    Rozbalit Rozbalit vše Re: Detekce neexistence zaznamu v poli
    Tak presne to co popisujete me prijde prozatim taktez jako nejlepsi reseni. Jedine ceho se trosku obavam je ten pruchod polem o cca 1000 polozkach a v ramci kazdeho pruchodu bude realizovan ten UPDATE. Defacto jsem nikdy v cyklu takhle s databazi nekomunikoval takze nevim zda je to vhodne (zatizeni apod.)...
    bazil avatar 5.8.2006 23:57 bazil | skóre: 33 | blog: sluje | Miroslav
    Rozbalit Rozbalit vše Re: Detekce neexistence zaznamu v poli
    verte tomu, ze na takhle malou DB a jednoduchy dotaz to mysql zvladne fpohode, zvlada i daleko vice polozek (radove 10 000) z jednoduchymi dotazy hodne rychle, ale to uz se potom nemuzou delat nejake krizove dotazy a tak, coz u vas nehrozi
    6.8.2006 00:08 Tunop
    Rozbalit Rozbalit vše Re: Detekce neexistence zaznamu v poli
    OK, diky za informace Ono vzhledem k tomu ze ten script bude spousten pouze cronem v intervalu radove desitek minut tak je zde urcita casova rezerva na jeho vykonani :) Jde me spise o vhodnost takoveho reseni.
    bazil avatar 6.8.2006 00:12 bazil | skóre: 33 | blog: sluje | Miroslav
    Rozbalit Rozbalit vše Re: Detekce neexistence zaznamu v poli
    ono se asi nijak jinak poradne neda prochazet jinak pole a tabulku a porovnavat je ... jeste me napada vytvorit z toho pole tmp tabulku a potom to vyresit nejak pomoci procedur a tak, ale vubec nevim jak ;-)
    6.8.2006 00:24 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Detekce neexistence zaznamu v poli
    Proč by se nedalo? Jenže jak jsem napsal hned na začátku, informace nejsou dostatečné pro uspokojivou odpověď. Ono je to něco jiného, přeženu-li to trochu, pokud máte v tabulce deset položek a v poli milion, a něco úplně jiného, pokud jich máte v tabulce milion a v poli deset.
    6.8.2006 00:27 Tunop
    Rozbalit Rozbalit vše Re: Detekce neexistence zaznamu v poli
    Mate pravdu, mel jsem hned na zacatku uvest ze v poli bude obsazena temer cela tabulka a tak bude jejich rozdil minimalni...
    6.8.2006 00:53 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Detekce neexistence zaznamu v poli
    V tom případě bych (bude-li položek trochu větší množství) asi dal přednost řešení, že budu procházet paralelně tabulku i pole vzestupně (v dotazu se použije order by, pole si seřadím nebo oindexuji). Při tomto postupu není problém označit správně položky tabulky a bude na to stačit jeden průchod (nepočítám-li vyhledávání položky, které bude muset provádět databáze při jednotlivých updatech).
    bazil avatar 6.8.2006 00:31 bazil | skóre: 33 | blog: sluje | Miroslav
    Rozbalit Rozbalit vše Re: Detekce neexistence zaznamu v poli
    a tak samozrejme ze da ;-) ale je to "trosicku" narocnejsi :-)
    6.8.2006 10:04 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Detekce neexistence zaznamu v poli
    Těžko říct, které řešení je nejlepší, ale jestliže očekáváte cca 1000 záznamů, tak se všecho vejde do paměti a život je hned veselejší. Jen pro představu o rychlosti - když to otestuju na 10000 položkách tímto programem
    #!/usr/bin/env python
    v_databazi = range(10000)
    v_poli = {}
    v_poli = v_poli.fromkeys(range(8000))
    neni_v_poli = [x for x in v_databazi if not v_poli.has_key(x)]
    print sorted(neni_v_poli)
    
    tak to běží cca 80 milisekund včetně generování testovacích dat a tisku výsledků. Krom toho, 50 milisekund sežere samotný start interpretu, takže bych se s rychlostí vůbec netrápil.
    V tomto případě jsem do pole vrazil čísla 0-7999 a do "databáze" 0-9999. Výsledkem jsou čísla 8000-9999. Pro vyhledávání používám asociativní pole.
    Pro jistotu jsem vyzkoušel ještě jeden milión (plus osm set tisíc) záznamů. Zde už je patrná nenažranost řešení, ale vejdu se pod sekundu a půl.

    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.