MySQL:
CONCAT(a,b,c)=CONCAT(aa,bb,cc)
alebo
a=aa AND b=bb AND c=cc
Čo bude rýchlejšie, keď a,b,c sú polia tabuľky a existuje index a+b+c? aa, bb a cc sú lokálne premenné v procedure na MySQL serveri.
Jestli je to hádanka, tak odpovídám: druhá varianta.
Citace od: Karel Bezděda kdy 14. 09. 2012, 12:31:41
Jestli je to hádanka, tak odpovídám: druhá varianta.
Nie, ale neviem sa rozhodnúť, keďže polia majú
iba spoločný index.
Navíc první varianta může vracet více výsledků (i chybné), než varianta druhá. A onen společný index druhou variantu právě urychlí.
Citace od: Kajman kdy 14. 09. 2012, 12:40:27
Navíc první varianta může vracet více výsledků (i chybné), než varianta druhá. A onen společný index druhou variantu právě urychlí.
jo, pripadne treba pouzit nejake delimitery ale to uz zachazame uplne mimo
napriklad tieto dva riadky budu identicke pre Concat
a=1 b=21 c=3
a=1 b=2 c=13
Citace od: lobo kdy 14. 09. 2012, 14:20:10
napriklad tieto dva riadky budu identicke pre Concat
a=1 b=21 c=3
a=1 b=2 c=13
Samozrejme o takomto prípade viem, ale táto možnosť nemôže nastať, pretože ide o stringy s konštantnou dĺžkou.
Už som použil II. možnosť, s rýchlosťou som spokojný. Ďakujem za pomoc.
a co hovori explain select ?
Citace od: mslebodnik kdy 14. 09. 2012, 16:59:55
a co hovori explain select ?
Neskúšal som, select je súčasťou väčšej procedure, kde všetko beží v cykle a jedným cursorom a v každom cykle idú 4 selecty takéhoto typu. Cursor má cca 10 000 riadkov a celé to peží pár sekúnd, takže pohoda.