[ Toyo @ 27.08.2005. 03:09 ] @
Problem je sledeci: Imam upit koji crpi podatke iz 4 tabele koje svaka ima od 10.000-100.000 slogova . Sad sam se ja malo zamislio pri pomisli da MySQL nece dobro da shvati upit i tamo gde treba da predje kroz tabelu samo jednom, da ce on preci 10.000 puta.

Radi ilustracije dajem jedan jednostavan primer koji nema veze sa stim sto radim ali se lako shvati:
Tabela artikli: (id, naziv,...)
Tabela stavke: (art_id,...)

Ako hocu da prebrojim koliko ima slogova tabela "stavke" gde je artikli.id=10 i da ispisem naziv artikla, to mogu da uradim na sledece nacine:

1.Konstanta i polje
Code:

SELECT artikli.naziv, COUNT(*) as koliko FROM artikli, stavke 
WHERE artikli.id=10 AND stavke.art_id=artikli.id GROUP BY artikli.naziv

2.Obe konstante
Code:

SELECT artikli.naziv, COUNT(*) as koliko FROM artikli, stavke 
WHERE artikli.id=10 AND stavke.art_id=10 GROUP BY artikli.naziv

3.Dva upita
Code:

SELECT naziv FROM artikli WHERE id=10
SELECT COUNT(*) as koliko FROM stavke WHERE art_id=10 



Ima li neko iskustva sa ovim na velikim bazama?




[Ovu poruku je menjao Toyo dana 27.08.2005. u 12:20 GMT+1]
[ Dejan Topalovic @ 27.08.2005. 08:06 ] @
Jesi li pokusao sa EXPLAIN SELECT ... ?
[ broker @ 27.08.2005. 11:18 ] @
Mozes li da editujes poruku i SQL upite preuredis tako da staju u vise redova i budu citkiji? Ma koliko se trudio, upit, ovako koako si ga napisao ne mogu da namestim da ceo stane na ekran da mogu da ga procitam.
[ Toyo @ 27.08.2005. 11:28 ] @
Citat:
Jesi li pokusao sa EXPLAIN SELECT ... ?


Izgleda da se tamo kriju odgovori na sva moja pitanja. Hvala!