Organizace Open Container Initiative (OCI) (Wikipedie), projekt nadace Linux Foundation, vydala Runtime Specification 1.3 (pdf), tj. novou verzi specifikace kontejnerového běhového prostředí. Hlavní novinkou je podpora FreeBSD.
Nový open source router Turris Omnia NG je v prodeji. Aktuálně na Allegro, Alternetivo, Discomp, i4wifi a WiFiShop.
Na YouTube a nově také na VHSky byly zveřejněny sestříhané videozáznamy přednášek z letošního OpenAltu.
Jednou za rok otevírá společnost SUSE dveře svých kanceláří široké veřejnosti. Letos je pro vás otevře 26. listopadu v 16 hodin v pražském Karlíně. Vítáni jsou všichni, kdo se chtějí dozvědět více o práci vývojářů, prostředí ve kterém pracují a o místní firemní kultuře. Můžete se těšit na krátké prezentace, které vám přiblíží, na čem inženýři v Praze pracují, jak spolupracují se zákazníky, partnery i studenty, proč mají rádi open source a co
… více »Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za říjen (YouTube).
Jeff Quast otestoval současné emulátory terminálu. Zaměřil se na podporu Unicode a výkon. Vítězným emulátorem terminálu je Ghostty.
Amazon bude poskytovat cloudové služby OpenAI. Cloudová divize Amazon Web Services (AWS) uzavřela s OpenAI víceletou smlouvu za 38 miliard USD (803,1 miliardy Kč), která poskytne majiteli chatovacího robota s umělou inteligencí (AI) ChatGPT přístup ke stovkám tisíc grafických procesů Nvidia. Ty bude moci využívat k trénování a provozování svých modelů AI. Firmy to oznámily v dnešní tiskové zprávě. Společnost OpenAI také nedávno
… více »Konference Prague PostgreSQL Developer Day 2026 (P2D2) se koná 27. a 28. ledna 2026. Konference je zaměřena na témata zajímavá pro uživatele a vývojáře. Příjem přednášek a workshopů je otevřen do 14. listopadu. Vítáme témata související s PostgreSQL či s databázemi obecně, a mohou být v češtině či angličtině.
Byl vydán Devuan 6 Excalibur. Přehled novinek v poznámkách k vydání. Kódové jméno Excalibur bylo vybráno podle planetky 9499 Excalibur. Devuan (Wikipedie) je fork Debianu bez systemd. Devuan 6 Excalibur vychází z Debianu 13 Trixie. Devuan 7 ponese kódové jméno Freia.
Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu poprvé překročil 3 %, aktuálně 3,05 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 27,18 %. Procesor AMD používá 67,10 % hráčů na Linuxu.
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: