Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kdo je autorem výstavy obrazových fotografií „Očima Hanse Christiana Andersena“?

V dnešní soutěži hrajeme o:



Rychlejší dotaz s COUNT()

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Rychlejší dotaz s COUNT()

Autor: RomanZ ♂

7:08:48 24.06.2014

A taky zvaž, jestli tam opravdu má být LEFT JOIN. Jestli místo toho nepotřebuješ JOIN.

Citovat příspěvek

 

Re: Rychlejší dotaz s COUNT()

Autor: RomanZ ♂

7:05:43 24.06.2014

Zkus přesunout podmínky, které se vztahují k joinovaným tabulkám x1 a x2, z WHERE za ON.

Například:

COUNT(x1.value) AS pocet
FROM zbozi
LEFT JOIN zbozi_parametry AS x2 ON (x2.id_zb=zbozi.id) AND ( (x2.sloupec='design' AND x2.value='2') )
LEFT JOIN zbozi_parametry AS x1 ON (x1.id_zb=zbozi.id) AND x1.sloupec='patka'
WHERE aktivita=1
AND ( kat='125' OR kat='126' OR kat='127' OR kat='14')
AND price >= 63.69
AND price <= 12078.41
GROUP BY x1.value ORDER BY x1.value

U MSSQL serveru mi to často pomohlo.

Citovat příspěvek

 

Rychlejší dotaz s COUNT()

Autor: Peet ♂

11:10:50 20.06.2014

Zdravím, mám problém při rychlosti výpisu počtu položek při složitější podmínce z DB. Jakmile je zde k výběru min. 1000pol, trvá dotaz až k 10s :-(

Jde o spojeni dvou tabulek na zaklade vstupnich udaju. Vim je pouzivam pripojeni jedne tabulky 2x (EAV model) coz bude zrejme ono zpomaleni, nicmene pri soucasnem designu tabulek to ani jinak nepujde, pac jde o volani vice kombinaci parametru ve sloupcich: sloupec=??? a value=??? spojene se zbozovou tabulkou id_zb. Nejaky napad, jak to preskladat tak, aby vypis byl daleko rychlejsi? Vsem velmi dekuji, uz jsem zoufaly.


Volání Count() je nyní takto:

COUNT(x1.value) AS pocet FROM zbozi LEFT JOIN zbozi_parametry AS x2 ON (x2.id_zb=zbozi.id) LEFT JOIN zbozi_parametry AS x1 ON (x1.id_zb=zbozi.id) WHERE aktivita=1 AND ( (x2.sloupec='design' AND x2.value='2') ) AND x1.sloupec='patka' AND ( kat='125' OR kat='126' OR kat='127' OR kat='14') AND price >= 63.69 AND price <= 12078.41 GROUP BY x1.value ORDER BY x1.value

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: