Certifikační autorita Let's Encrypt oznámila, že bude volitelně nabízet krátkodobé certifikáty s šestidenní platností a navíc s možností vystavit je na IP adresu. Zvolit typ certifikátu bude možné v certifikačním profilu ACME.
Herní konzole Nintendo Switch 2 byla oficiálně potvrzena. Vyjde letos. Trailer na YouTube. Více ve středu 2. dubna na Nintendo Direct.
Byl vydán Linux Mint 22.1 s kódovým jménem Xia. Podrobnosti v přehledu novinek a poznámkách k vydání. Linux Mint 22.1 bude podporován do roku 2029.
Google Chrome 132 byl prohlášen za stabilní. Nejnovější stabilní verze 132.0.6834.83 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 16 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).
Byla vydána verze 11.0.0 knihovny libvirt (Wikipedie) zastřešující různé virtualizační technologie a vytvářející jednotné rozhraní pro správu virtuálních strojů. Současně byl ve verzi 11.0.0 vydán související modul pro Python libvirt-python. Přehled novinek v poznámkách k vydání.
Byla vydána nová verze 3.4.0 nástroje pro inkrementální kopírování souborů rsync (Wikipedie). Přehled oprav a vylepšení v souboru NEWS. Řešeno je 6 zranitelností.
V srpnu loňského roku byla vyhlášena RP2350 Hacking Challenge aneb oficiální výzva Raspberry Pi na prolomení bezpečnosti mikrokontroléru RP2350. Povedlo se. Včera byli představeni čtyři vítězové a jejich techniky.
Na čem aktuálně pracují vývojáři open source operačního systému Haiku (Wikipedie)? Byl publikován přehled vývoje za prosinec 2024. Vypíchnuto je začlenění webového prohlížeče Iceweasel, tj. alternativního sestavení Firefoxu.
Tetris a DOOM běžící v pdf. Proč a jak v příspěvku na blogu.
Společnost Oracle představila sadu nástrojů a skriptů pro sběr a analýzu dat o stavu linuxových systémů a jejich ladění pod společným názvem Oracle Linux Enhanced Diagnostics (OLED). K dispozici pod licencí GPLv2.
Ahoj mam tabulku v ktorej sa nachadza priblizne 1500 zaznamov, dalsie zaznami tam budu pribudat. v tabulke sa nachadza stlpec ktory identifikuje cloveka, je to tabulka prichodov a odchodov z prace. potrebujem z tabulky casto ziskavat najnovsi zaznam konkretneho cloveka. Ktory dotaz by bol vykonostne lepsi, zatial ma napadlo iba toto: SELECT dochadzka_id FROM dochadzka ORDER BY dochadzka_id DESC LIMIT 1
v tabulke dochadzka sa nachadzaju este stlpce: person_id, prichod_timestamp, odchod_timestamp.
Ahoj, nevím, co na tomto dotazu optimalizovat... Jen je potřeba, aby byl nad dochazka_id index resp. primární klíč. A ještě ti tam chybí WHERE podmínka na person_id (tento sloupec by měl mít také index). Tedy v MySQL bych to napsal asi nasledovně a v náročnosti dotazu problém nevidím:
SELECT dochadzka_id FROM dochadzka WHERE person_id = 1 ORDER BY dochadzka_id DESC LIMIT 0,1
To je dost neskutecne sileny "reseni". Mit v aplikaci hardcoded, ze minimalni person_id je 1? A co kdyz nekdo toho prvniho clovicka odmaze z databaze, to se bude delat uprava i v kodu?...
No napadlo ma take riesenie, ze dam do tabulky dochadzka trigger, ktory do tabulky posledna_dochadzka vzdy po inserte noveho zaznamu na konkretnu osobu vlozy posledne toto id, myslite ze to bude vykonostne horsie s tymto trigerom ako ked mam prehladavat takuto kopu zaznamov?
To zalezi na tom, jak se to bude pouzivat - trigger nema zadny vliv na dotazy, zvysuje pouze cenu insertu. Pokud ti to opravdu pripada tak kriticke, tak pri typickem pouziti (caste dotazy, neprilis caste inserty) toto muze byt dobra volba. Pro radove tisice zaznamu si ale myslim, ze rozdil nebude na rozumnem hardwaru (a databzi) pozorovatelny.
Záleží na tom, kolik budete provádět těch insertů a kolik těch dotazů na poslední příchod. Řešení s poznamenáním si id posledního příchodu (nemusí to být trigger, můžete použít i proceduru a insertovat zásadně jen přes ni) zpomalí insert a zrychlí select. Vzhledem k tomu, že z podstaty věci nepůjde pro jednoho člověka o více než jednotky insertů za den, zvýšením náročnosti insertu bych se moc netrápil. Další možností je samozřejmě udělat si na té tabulce index, ale přes to pomocné pole s id posledního příchodu to asi bude jednodušší, pokud nevyužijete řazení starších příchodů.
Ještě technická poznámka: 1500 řádků v tabulce není žádná "takáto kupa záznamov", to je pořád docela malá tabulka.
Pokud potřebuješ ten záznam "často" jak píšeš, příjde mi i přes to, že se může jednat o zpomalení insertu logičtější ukládat si ten poslední příchod jako speciální hodnotu a tu pak nevyhledávat.
Je tu ještě otázka toho, jestli při vysokém vytížení je poslední přidělené ID opravdu posledním záznamem přidaným do tabulky, ale uznávám že při 1500 záznamech a pracovní morálkou čechů není zase tak vysoce pravděpodobném, že by se tento problém vyskytl :D.
SELECT max(dochadzka_id) FROM dochadzka [WHERE id_person=...]
Ovsem razeni podle id opravdu neni nejlepsi reseni, sekvence zrucuje jedinecnost, nikoli posloupnost. Kdyz db poslape na vice nodech tak ma zpravidla nakesovany id a kazdy node muze aktualne prirazovat id z jineho rozsahu. Proto je spravnejsi se ptat na dobu vlozeni/zmeny zaznamu. Nicmene pri danem navrhu to nebude opet zcela trivialni, protoze prichodem se bude nejspis insertovat a odchodem updatovat a porovnavani budeme muset delat podle dvou sloupcu. Takze by to chtelo budto pridat sloupec modiftime (a s narustajicim poctem zaznamu se sikne i index), nebo prekopat zcela logiku tabulky a ukladat zvlast zaznamy pro prichod a odchod a rozlisit je typem.
SELECT d.id_dochadzka FROM dochadzka d WHERE d.id_person=1 and d.modiftime = (SELECT max(t.modiftime) FROM dochazka t WHERE t.id_person = d.id_person)
Predpokladam, ze tezko v jeden okamzik bude mit clovek vice zaznamu, to by se pak muselo resit nejakou agregacni funkci. V subselectu misto t.id_person = d.id_person
muze byt primo cislo, snizuje to cost. Jestli je to nejaka vyspelejsi db, bude mozne vyhnout se subselectu nejakou statistickou nebo agregacni funkci, nicmene jestli je to vyhodnejsi nebo ne asi bude treba vyzkouset.
Reseni s triggerem neni podle me nejlepsi, protoze to zbytecne bude prochazet tabuli a updatovat predchozi zaznam a spomali to dobu insertu -> prodlouzi dobu zamku nad tabulkou
Tiskni Sdílej: