izmenjeno 1 put, poslednji put Toyo 27.08.2005. u 12:20
Izmene poruke
- Toyo27.08.2005. u 12:20zapis iz teksta poruke
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
2.Obe konstante
3.Dva upita
Ima li neko iskustva sa ovim na velikim bazama?
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
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
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
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?