pocni sa tim da pises explicitno
join, lakse za gledati
Code:
SELECT v.VID, v.title, v.channel, v.duration, v.thumb, v.thumbs, vs.viewnumber, vs.rate, v.videoURL
FROM
video v
JOIN
video_stats vs USING (VID)
WHERE
v.type = 'public'
AND v.active = '1'
ORDER BY v.addtime DESC LIMIT 18
Ono sto mozes ovde da ubrzas je da kreiras kljuc (VID, type, active) u video tabeli posto mysql tu ili koristi tvoj primarni kljuc (vid) ili koristi "type, active" kljuc a trebaju mu oba ... napravi mu vid, type, active i radice brze
dalje, povecaj ako imas prostora malo sort buffer size mada ako se secam ti imas tu neka text polja sto znaci da su podaci "veliki". Probaj prvo da samo dodas index, ako pomnogne super, ako ne pomogne onda uradi nesto tipa
Code:
SELECT av.VID, av.title, av.channel, av.duration, av.thumb, av.thumbs, avs.viewnumber, avs.rate, av.videoURL from
video av, video_status avs where av.VID in
(SELECT v.VID
FROM
video v
JOIN
video_stats vs USING (VID)
WHERE
v.type = 'public'
AND v.active = '1'
ORDER BY v.addtime DESC LIMIT 18)
ORDER BY v.addtime DESC;
fora je sto u ovom drugom slucaju ovaj interni query radi sortiranje minimalnog result set-a i ne mora da premesta ogromne slogove tamo vamo ... vrati 18 id-ova i onda povuce podatke za samo tih 18 i sortira ih na brzaka (samo njih 18)