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:33 | Nová verze

    Byla vydána nová verze 9.13 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 21:44 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Nová verze

    Byla vydána nová stabilní verze 3.22.0, tj. první z nové řady 3.22, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    30.5. 00:33 | IT novinky

    FEL ČVUT vyvinula robotickou stavebnici pro mladé programátory. Stavebnice Brian byla navržená speciálně pro potřeby populární Robosoutěže. Jde ale také o samostatný produkt, který si může koupit každý fanoušek robotiky a programování od 10 let, ideální je i pro střední školy jako výuková pomůcka. Jádro stavebnice tvoří programovatelná řídicí jednotka, kterou vyvinul tým z FEL ČVUT ve spolupráci s průmyslovými partnery. Stavebnici

    … více »
    Ladislav Hagara | Komentářů: 41
    29.5. 20:33 | Komunita

    Ubuntu bude pro testování nových verzí vydávat měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 25.10 (Questing Quokka).

    Ladislav Hagara | Komentářů: 0
    29.5. 14:55 | Nová verze

    Společnost Netgate oznámila vydání nové verze 2.8.0 open source firewallové, routovací a VPN platformy pfSense (Wikipedie) postavené na FreeBSD. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    29.5. 14:00 | Nová verze

    Byla vydána nová verze 6.16 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Tor Browser byl povýšen na verzi 14.5.3. Linux na verzi 6.1.140. Další změny v příslušném seznamu.

    Ladislav Hagara | Komentářů: 0
    29.5. 12:33 | Zajímavý článek

    Člověk odsouzený za obchod s drogami daroval letos ministerstvu spravedlnosti 468 kusů kryptoměny bitcoin, které pak resort v aukcích prodal za skoro miliardu korun. Darováním se zabývá policejní Národní centrála proti organizovanému zločinu (NCOZ). Deníku N to potvrdil přímo ministr spravedlnosti Pavel Blažek (ODS). Podle resortu bylo nicméně vše v souladu s právem.

    Ladislav Hagara | Komentářů: 58
    28.5. 20:44 | Nová verze

    Svobodný a otevřený multiplatformní editor EPUB souborů Sigil (Wikipedie, GitHub) byl vydán ve verzi 2.5.0. Stejně tak doprovodný vizuální EPUB XHTML editor PageEdit (GitHub).

    Ladislav Hagara | Komentářů: 0
    28.5. 12:22 | IT novinky

    Na základě národního atribučního procesu vláda České republiky označila Čínskou lidovou republiku za zodpovědnou za škodlivou kybernetickou kampaň proti jedné z neutajovaných komunikačních sítí Ministerstva zahraničních věcí ČR. Tato škodlivá aktivita, která trvala od roku 2022 a zasáhla instituci zařazenou na seznam české kritické infrastruktury, byla provedena kyberšpionážní skupinou APT31, veřejně spojovanou se zpravodajskou službou Ministerstvo státní bezpečnosti (MSS).

    Ladislav Hagara | Komentářů: 52
    Jaký je váš oblíbený skriptovací jazyk?
     (55%)
     (32%)
     (7%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 168 hlasů
     Komentářů: 13, poslední 30.5. 12:26
    Rozcestník

    Dotaz: Detekce neexistence zaznamu v poli

    5.8.2006 20:16 Crempa
    Detekce neexistence zaznamu v poli
    Přečteno: 51×
    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: 72 | 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: 72 | 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: 72 | 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.