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:44 | IT novinky

    Na Epic Games Storu lze do 15. června získat zdarma počítačovou hru PAYDAY 2 (ProtonDB, Wikipedie). Linuxový port přestal být ve čtvrtek 8. června podporován.

    Ladislav Hagara | Komentářů: 2
    včera 16:55 | Humor

    Ezoterický programovací jazyk Brainfuck (Wikipedie) slaví 30 let. Urban Müller nahrál první implementaci tohoto jazyka na Aminet 9. června 1993.

    Ladislav Hagara | Komentářů: 3
    včera 16:22 | Komunita

    Společnost Apple na konferenci WWDC23 představila Game Porting Toolkit. Společnost CodeWeavers informuje, tento toolkit vychází ze zdrojových kódů jejího CrossOveru, tj. komerčního Wine.

    Ladislav Hagara | Komentářů: 1
    8.6. 23:11 | Nová verze

    Byla vydána květnová aktualizace aneb nová verze 1.79 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.79 vyšlo také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 6
    8.6. 22:22 | IT novinky

    Jak to bude s podporou rastrového grafického formátu JPEG XL ve webových prohlížečích? Google ji nedávno z Chrome a Chromia odstranil (#1178058#c84). Jednou z novinek beta verze Safari 17 je ale právě podpora JPEG XL. Vráti se JPEG XL do Chrome a Chromia (#1451807)? Dění kolem JPEG XL lze sledovat například na r/jpegxl.

    Ladislav Hagara | Komentářů: 1
    8.6. 12:55 | Nová verze

    Byla vydána nová stabilní verze 6.1 (aktuálně 6.1.3035.51) webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 114. Přehled novinek i s náhledy v příspěvku na blogu. Nový Vivaldi se pro Bing tváří jako Microsoft Edge (upravený User-Agent) a díky tomu v něm funguje Bing Chat. Vylepšeny byly Pracovní prostory (Workspaces). Podrobný přehled v Changelogu.

    Ladislav Hagara | Komentářů: 1
    8.6. 11:00 | Komunita

    Linuxová distribuce ArchLabs Linux po šesti letech vývoje končí. Dobbie to zabalil.

    Pinhead | Komentářů: 7
    7.6. 22:44 | Zajímavý článek

    David Tschumperlé v obšírném článku se spoustou náhledů shrnuje vývoj multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie) za poslední rok a půl.

    Ladislav Hagara | Komentářů: 0
    7.6. 17:11 | Nová verze

    Vývojáři postmarketOS vydali verzi 23.06 tohoto před šesti lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell, Phosh, Plasma a Sxmo. Aktuálně podporovaných zařízení je 30.

    Ladislav Hagara | Komentářů: 0
    7.6. 16:33 | Nová verze

    Byla vydána distribuce openSUSE Leap verze 15.5 (poznámky k vydání). Jde o konzervativní distribuci odpovídající komerčnímu SUSE Linux Enterprise 15, nyní Service Pack 5. Mělo jít o poslední aktualizaci Leap v současné podobě před přechodem na Adaptable Linux Platform s „neměnným“ základem, ale padlo rozhodnutí, že v roce 2024 ještě vyjde Leap 15.6 s podporou do konce roku 2025.

    Fluttershy, yay! | Komentářů: 0
    Twitter (nejen pro příležitostné čtení)
     (92%)
     (2%)
     (6%)
    Celkem 340 hlasů
     Komentářů: 7, poslední dnes 09:25
    Rozcestník

    Dotaz: MySQL - Poddotaz pomalejší než samostatné dotazy

    14.1.2009 18:30 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    MySQL - Poddotaz pomalejší než samostatné dotazy
    Přečteno: 544×
    Mám problém u tabulky s 16000 řádků s poddotazy. Když např spustím dotaz
    SELECT f.*
      FROM jos_fi_firms AS f
    
      WHERE id IN(
    SELECT MAX(id)
      FROM jos_fi_firms AS f
    
      LEFT JOIN jos_fi_spec_firm AS sf
      ON f.id=sf.firm_id
    
      WHERE f.state=1
      AND (LOWER(f.title) LIKE '%xx%'
      AND LOWER(f.region) LIKE '%%' OR LOWER(f.district) LIKE '%%' OR LOWER(f.city) LIKE '%%' OR LOWER(f.city_part) LIKE '%%')
    
      GROUP BY f.ico, f.title
    )
    
      ORDER BY f.title

    Tak se mi nikdy nedokončí, protože dříve vyprší doba běhu PHP skriptu, když dám ale každý z těchto dotazů samostatně, tak mi skončí skoro okamžítě.

    EXPLAIN mi vypíše něco takového:

    1 	PRIMARY 	f 	ALL  	NULL  	NULL  	NULL  	NULL 	16004 	Using where; Using filesort
    2 	DEPENDENT SUBQUERY 	f 	ALL 	NULL 	NULL 	NULL 	NULL 	16004 	Using where; Using temporary; Using filesort
    2 	DEPENDENT SUBQUERY 	sf 	ref 	PRIMARY 	PRIMARY 	[BINARY - 1B] 	xxx.f.id 	1 	Using index


    Druhý problém mám s dotazem
    SELECT @uid:=IFNULL(u.id,0) AS id, IFNULL(u.name,0) AS name,
    @max_date:=(SELECT IFNULL(MAX(s.date),'0000-00-00')
      FROM jos_fi_stats AS s
    
      WHERE s.user_id=@uid) AS max_date,
    (SELECT COUNT(*)
      FROM jos_fi_firms AS f
    
      WHERE f.edited_by=@uid
      AND f.date>@max_date) AS cnt
    
      FROM jos_fi_firms AS f
    
      LEFT JOIN jos_users AS u
      ON f.edited_by=u.id
    
      GROUP BY f.edited_by

    Na 16000 řádcích tabulky jos_fi_firms taky nikdy nedojede. Když spustím tento dotaz s EXPLAIN, tak mi to vypíše něco takového:

    id 	select_type 	table 	type 	possible_keys 	key 	key_len 	ref 	rows 	Extra
    1 	PRIMARY 	f 	ALL 	NULL 	NULL 	NULL 	NULL 	16004 	Using temporary; Using filesort
    1 	PRIMARY 	u 	eq_ref 	PRIMARY 	PRIMARY 	[BINARY - 1B] 	xxx.f.edited_by 	1 	 
    3 	UNCACHEABLE SUBQUERY 	f 	ALL 	NULL 	NULL 	NULL 	NULL 	16004 	Using where
    2 	UNCACHEABLE SUBQUERY 	s 	system 	NULL 	NULL 	NULL 	NULL 	0 	const row not found

    Nevíte někde, kde můžu mít chybu?Nebo jak ty dotazy zoptimalizovat? Doteď jsem si myslel, že nejlepší optimalizace je pomocí poddotazů, ale proč v prvním případě když použiju poddotazy, tak je dotaz nekonečný, zatímto když je spustím každý z těch dotazů samostatně, tak jsou hotové skoro okamžitě?

    Předem děkuji za vaše rady

    Odpovědi

    14.1.2009 20:58 blondak | skóre: 36 | blog: Blondak | Čáslav
    Rozbalit Rozbalit vše Re: MySQL - Poddotaz pomalejší než samostatné dotazy

    a co místo toho prvního dotazu zkusit:

    SELECT * FROM (
    SELECT 
      f.*
    FROM 
      jos_fi_firms AS f
      LEFT JOIN jos_fi_spec_firm AS sf ON f.id=sf.firm_id
    WHERE 
        f.state=1
    AND (LOWER(f.title) LIKE '%xx%'
    AND LOWER(f.region) LIKE '%%' OR LOWER(f.district) LIKE '%%' OR LOWER(f.city) LIKE '%%' OR LOWER(f.city_part) LIKE '%%')
    
    GROUP BY f.ico, f.title
    ORDER BY f.ID desc
    ) AS a
    ORDER BY f.title
    
    mělo by to dělat to samé.
    Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
    14.1.2009 21:06 blondak | skóre: 36 | blog: Blondak | Čáslav
    Rozbalit Rozbalit vše Re: MySQL - Poddotaz pomalejší než samostatné dotazy

    ups, na konci má být

    ORDER BY a.title
    
    Každý problém ma své logické, snadno pochopitelné nesprávné řešení.

    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.