V Lucemburku byly oznámeny výsledky posledního kola výzev na evropské továrny pro umělou inteligenci neboli AI Factories. Mezi úspěšné žadatele patří i Česká republika, potažmo konsorcium šesti partnerů vedené VŠB – Technickou univerzitou Ostrava. V rámci Czech AI Factory (CZAI), jak se česká AI továrna jmenuje, bude pořízen velmi výkonný superpočítač pro AI výpočty a vznikne balíček služeb poskytovaný odborníky konsorcia. Obojí bude sloužit malým a středním podnikům, průmyslu i institucím veřejného a výzkumného sektoru.
Byla vydána (𝕏) zářijová aktualizace aneb nová verze 1.105 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.105 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Ve Firefoxu bude lepší správa profilů (oddělené nastavení domovské stránky, nastavení lišt, instalace rozšíření, uložení hesla, přidání záložky atd.). Nový grafický správce profilů bude postupně zaváděn od 14.října.
Canonical vydal (email) Ubuntu 25.10 Questing Quokka. Přehled novinek v poznámkách k vydání. Jedná se o průběžné vydání s podporou 9 měsíců, tj. do července 2026.
ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzi 1.5.0.
Byla vydána nová verze 1.12.0 dynamického programovacího jazyka Julia (Wikipedie) určeného zejména pro vědecké výpočty. Přehled novinek v příspěvku na blogu a v poznámkách k vydání. Aktualizována byla také dokumentace.
V Redisu byla nalezena a v upstreamu již opravena kritická zranitelnost CVE-2025-49844 s CVSS 10.0 (RCE, vzdálené spouštění kódu).
Ministr a vicepremiér pro digitalizaci Marian Jurečka dnes oznámil, že přijme rezignaci ředitele Digitální a informační agentury Martina Mesršmída, a to k 23. říjnu 2025. Mesršmíd nabídl svou funkci během minulého víkendu, kdy se DIA potýkala s problémy eDokladů, které některým občanům znepříjemnily využití možnosti prokázat se digitální občankou u volebních komisí při volbách do Poslanecké sněmovny.
Společnost Meta představila OpenZL. Jedná se o open source framework pro kompresi dat s ohledem na jejich formát. Zdrojové kódy jsou k dispozici na GitHubu.
Google postupně zpřístupňuje českým uživatelům Režim AI (AI Mode), tj. nový režim vyhledávání založený na umělé inteligenci. Režim AI nabízí pokročilé uvažování, multimodalitu a možnost prozkoumat jakékoliv téma do hloubky pomocí dodatečných dotazů a užitečných odkazů na weby.
Řešení dotazu:
Vlastní spojení: 0.001 s Vyhledávání (WHERE t1.sloupec = 'neco' AND t2.sloupec = 'necojine' za použití indexů tzn. dotazy typu =, <, > ...: 0.05 s Řazení podle sloupce výchozí tabulky: 0.001 s Řazení podle sloupce druhé tabulky (left join druha_tabulka): 5 s Kombinace řazení: 4 sTaké jsem vyzkoušel, že InnoDB je cca 2x rychlejší než MyISAM na hledání a ROW FORMAT InnoDB COMPACT je o trochu rychlejší než InnoDB REDUNDANT. Otázka je jasná: jak urychlit to řazení? RIGHT JOIN apod. řešení nepřipadají v úvahu, protože těch tabulek se bude spojovat více. Také by asi bylo dobré aplikovat podmínky WHERE do join podmínek (ON (t1.a = t2.a AND t1.sloupec = 'neco' ...)), nicméně to asi nepůjde zrealizovat, protože by to zachovalo všechny řádky a nevěděl bych, které existují a u kterých je NULL z důvodu nesplnění přidaných podmínek a INNER JOIN na druhé straně omezuje jinak - nicméně tohle mě tolik netrápí, protože je to na rozdíl od řazení velice rychlé i se standardním WHERE.
Také by asi bylo dobré aplikovat podmínky WHERE do join podmínek (ON (t1.a = t2.a AND t1.sloupec = 'neco' ...)), nicméně to asi nepůjde zrealizovat, protože by to zachovalo všechny řádky a nevěděl bych, které existují ...A nemá se to náhodou psát takto?
... ON t1.a = t2.a WHERE t1.sloupec = 'neco' ...
(pokud teda není součást té podmínky OR/AND IS NULL)Právě že je, proto se bez where neobejdu.
Explain: id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE ppp index NULL name 767 NULL 309090 Using index; Using temporary; Using filesort 1 SIMPLE t eq_ref PRIMARY PRIMARY 767 ppp.prvni.name 1
select name from ppp left join tabulka t on (ppp.name = t.name) order by t.sloupec1 limit 30
SELECT name FROM
(
SELECT name, sloupec1 as razeni FROM tabulka ORDER BY sloupec1 LIMIT 30
UNION
SELECT name, NULL razeni FROM ppp WHERE name NOT EXIST IN (SELECT name FROM tabulka) LIMIT 30
)
ORDER BY razeni LIMIT 30
CREATE TABLE `tabulka` ( `lid` int(10) unsigned NOT NULL AUTO_INCREMENT, `id` int(10) unsigned NOT NULL, `sloupec1` tinyint(1) DEFAULT NULL, PRIMARY KEY (`lid`), KEY `sloupec1` (`sloupec1`), KEY `id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin select .... left join tabulka ... order by tabulka.sloupec1 desc - podtržená část způsobí zpomalení na více než 30 s. explain: id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE ppp ALL NULL NULL NULL NULL 306409 Using temporary; Using filesort 1 SIMPLE tabulka ref id id 4 ppp.ppp.id 1A je jedno jestli je id unikátní nebo ne (tady není, protože mi to umožní do budoucna spojení 1:N).
SELECT name FROM ( SELECT name, sloupec1 as razeni FROM tabulka tab LIMIT 30 UNION SELECT name, NULL razeni FROM ppp pp WHERE name NOT IN (SELECT name FROM tabulka) LIMIT 30 ) t ORDER BY razeni LIMIT 30Toto je bleskové, ale nebude to funkční - mysql mi nedovolí order by u selectu v unionu. Také by to bylo nefunkční pro řazení podle více sloupců.
SELECT name, FROM
(
(SELECT name, sloupec1 as razeni, NULL FROM tabulka LIMIT 30)
UNION
(SELECT name, NULL, sloupec1 as razeni2 FROM nevimco LIMIT 30)
UNION
(SELECT name, NULL, NULL FROM ppp pp WHERE name NOT IN (SELECT name FROM tabulka) LIMIT 30)
) t
ORDER BY razeni, razeni2 LIMIT 30
jak by to mělo fungovat: name sloupec1 sloupec2 a 1 1 b 2 1 c 3 1 d 4 1 e 5 1 f 6 2 g 6 3 h 6 4 i 7 5 j 8 5 k 9 5 l 10 5 m 11 6 n 12 7 o 13 8 p 14 9 jenže ono to nejprve seřadí sloupec1, pak sloupec2 - tzn. pokud budou ve sloupci1 někde stejné hodnoty, pak ty sloupec2 nemusí vůbec ovlivnit a jen přidá další.Nicméně tento typ dotazu určitě použiju při řazení podle jednoho sloupce (kde je zrychlení ze 4.5 na 0.001s). Díky.
(SELECT id, f1, f2, f4 NULL FROM t1 INNER JOIN t2 USING (id) ORDER BY f1, f2,3 LIMIT 30)
UNION
(SELECT id, f1, f2, NULL NULL NULL FROM t1 INNER JOIN t2 USING (id) ORDER BY f1, f2,3 LIMIT 30)
UNION
(SELECT id, NULL, NULL, f4 FROM t1 INNER JOIN t2 USING (id) ORDER BY f1, f2,3 LIMIT 30)
UNION
(SELECT id FROM mastertable WHERE id NOT IN (select id from t1) AND id NOT IN (select id from t2) ORDER BY f1, f2,3 LIMIT 30)
Nejlepší v tomdle případě by bylo vytvořit temporary table a do ní to postupně sypat a skončit v okamžiku,
kdy je v ní dostatek záznamů.
from t1 inner join t2
from t1 not in t2
from t2 not in t1
from t not in t1 and not in t2
S víc tabulkama to už začne bejt mazec, ale dá se to poskládat automaticky. Hlavně bych pak místo
unionu použil temporary table, protože v ní můžeš počítat počet vložených záznamů a až jich bude dost,
tak nepokračovat ve vkládání dalších subdotazů.
Tiskni
Sdílej: