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

    Laboratoře CZ.NIC vydaly novou verzi 4.27.0 aplikace Datovka, tj. svobodné multiplatformní desktopové aplikace pro přístup k datovým schránkám a k trvalému uchovávání datových zpráv v lokální databázi. Přidány byly funkce pro přerazítkování datových zpráv systémem ISDS. Uživatel muže zvolit zprávy, jejichž časová razítka má aplikace sledovat. Aplikace jej upozorní na časová razítka, která lze přerazítkovat. Uživatel pak může

    … více »
    Ladislav Hagara | Komentářů: 0
    dnes 12:00 | IT novinky

    Bylo představeno all-in-one PC aneb mechanická podsvícená klávesnice s Raspberry Pi 5 uvnitř Raspberry Pi 500+. S 256 GB Raspberry Pi SSD a 16 GB RAM za 200 dolarů.

    Ladislav Hagara | Komentářů: 1
    včera 21:11 | IT novinky

    Google, potažmo YouTube umožní návrat tvůrcům, kteří byli zablokováni kvůli údajnému šíření dezinformací souvisejících s COVID-19 a volbami. Tvůrci teď mohou požádat o navrácení přístupu. Společnost Alphabet v této souvislosti uvedla, že zákazy byly uděleny kvůli tlaku tehdejší Bidenovy administrativy.

    karkar | Komentářů: 16
    včera 18:33 | Zajímavý článek

    Vývojári z distribúcie Artix, ktorá je postavená na Arch Linuxe, alebo skôr jeho forkom, už skôr prešli na Open-RC init systém, stále však niektoré projekty ako GNOME boli závislé na systemd. Teraz pretiekol pohár trpezlivosti a počnúc GNOME 49, kvôli ktorému komponenta gnome-session je úplne závislá na systemd-init, padlo rozhodnutie na odstránenie GNOME z repozitárov Artixu. Táto zmena sa podľa všetkého týka viac než 90 distribúcií, ktoré tiež nepoužívajú systemd. Viac v príspevku na DistroWatch.

    lukve | Komentářů: 7
    včera 17:33 | IT novinky

    Magazín IEEE Spectrum opět po roce publikoval svůj žebříček programovacích jazyků. Vedou Python, Java, C++, SQL a C#.

    Ladislav Hagara | Komentářů: 3
    včera 15:11 | Komunita

    Repozitáře pro spolupráci v rámci projektu Fedora se přesunou z Pagure na nově vzniklý Fedora Forge. Ten stejně jako třeba Codeberg běží na softwaru Forgejo, které bylo už před časem vybráno jako náhrada za Pagure. Pagure pochází z dílny Fedory, ale mimo ni se příliš neuchytil. Jeho vývoj a údržba byly náročné a Fedora se rozhodla jít cestou úspěšnějšího projektu, který má větší základnu přispěvatelů.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | Nová verze

    Byla vydána (𝕏) nová verze 2025.3 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení na blogu.

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

    V IT4Innovations národním superpočítačovém centru byl dnes slavnostně spuštěn první český kvantový počítač VLQ disponující 24 fyzickými qubity s unikátní hvězdicovou topologií. Systém dodala společnost IQM Quantum Computers a jeho celková pořizovací cena činila přibližně 125 milionů korun.

    Ladislav Hagara | Komentářů: 31
    23.9. 12:22 | IT novinky

    Výrobce čipů Nvidia chce investovat až 100 miliard dolarů (přes dva biliony Kč) do společnosti zaměřené na umělou inteligenci OpenAI. Firmy o tom informují v tiskové zprávě. Oznámené partnerství přichází v době, kdy se mezi technologickými giganty a start-upy zostřuje konkurence o zajištění přístupu k energii a čipům potřebným pro rozvoj umělé inteligence (AI).

    Ladislav Hagara | Komentářů: 0
    23.9. 05:22 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 157 (pdf).

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (42%)
     (53%)
     (9%)
     (10%)
     (12%)
     (10%)
     (18%)
     (10%)
     (15%)
    Celkem 89 hlasů
     Komentářů: 9, poslední včera 17:28
    Rozcestník

    Dotaz: Detekce neexistence zaznamu v poli

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