[ vatri @ 29.01.2013. 09:42 ] @
Pozdrav svima!


Imam glavnu tabelu `prod` koja sadrzi primary key (ID) proizvoda i recimo ID korisnika koji je to unjeo. Imam drugu tabelu sa poljima npr.

prod_data(
product_id int,
field varchar(20),
val varchar(255)
)

Za jedan ID proizvoda, postoji vise zapisa u _data tabeli.

Ako zelim izlistati recimo 5 poslednjih proizvoda sa podacima iz _data tabele koristim ovakav query:


Code:
SELECT m.id, m.user_id, d.fld, d.val
FROM ((SELECT id, def_lang FROM `prod` ORDER BY `id` DESC LIMIT 5) AS m ) 
LEFT JOIN `prod_data` AS d 
   ON d.confnum_id = m.id



Kasnije to kroz program organizujem po zelji...

Da li mislite da postoji bolji nacin za ovo i da li bi moglo praviti probleme sa velikom `prod_data` tabelom tipa 100.000+ redova ?


Pozdrav!
[ VladaSu @ 29.01.2013. 10:40 ] @
Sve zavisi kakvi su ti ostali sql-ovi u programu.
Mozda je bolje resenje da prvo samo uradis selektovanje iz prod tabele
a onda u petlji za svaki id iz prod tabele uradis po jedan selekt iz prod_data tabele.

Ovo bi ti verovatno brze radilo ali opet sve zavisi.
Ubrzati mozes i ako uradis particionisanje tabela, sto opet sve zavisi od ostalih sql-ova sto imas.


[ Predrag Supurovic @ 29.01.2013. 10:55 ] @
Ja bih pre napravio u bazi view koji izdvaja samao najnovije slogvoe po artiklima pa njeg akoristio u join-u. Mada, svakako to treba premeriti i videti da li bi dalo neko ubrzanje.
[ bogdan.kecman @ 29.01.2013. 14:41 ] @
Citat:
Predrag Supurovic: Ja bih pre napravio u bazi view koji izdvaja samao najnovije slogvoe po artiklima pa njeg akoristio u join-u. Mada, svakako to treba premeriti i videti da li bi dalo neko ubrzanje.


view kod mysql-a tesko da moze da izazove bilo kakvo ubrzanje
[ bogdan.kecman @ 29.01.2013. 14:57 ] @
Citat:
vatri:

Ako zelim izlistati recimo 5 poslednjih proizvoda sa podacima iz _data tabele koristim ovakav query:


poslednjih po kom kriterijumu ?
ID ne mora da bude po redu.


Citat:
vatri:
Da li mislite da postoji bolji nacin za ovo i da li bi moglo praviti probleme sa velikom `prod_data` tabelom tipa 100.000+ redova ?


ako je sve indexirano kako treba, ne
[ vatri @ 13.02.2013. 09:10 ] @
Izvinjavam se bio u guzvi ne stigoh prije se javiti.

Bogdane,
ID mi je AUTO_INCREMENT pa po njemu listam, mada to nije sustina moga pitanja. Zanimalo me je samo koliko bi to moglo praviti probleme sto se tice brzine pod uslovom da su tabele pravilno indeksirane, a ti si odgovorio. Malo sam ja probavao i sa nekim probnim podacima (100.000+) i radilo je brzo tako da bi ovo trebalo biti OK.

View koliko znam, a rece i Bogdan, ne utice na brzinu, a raditi sa petljama mi se ne svidja :)


Uglavnom hvala svima!