İşte benim mysql tablo düzenidir;
- Durum tablo / / StatusId, kullanıcı kimliği, tarih, konu, tarih vardır
- comment table // holds commentID, userID who posted, date, and statusID that it belongs too
- user table //holds userID username and user photo URL
Yukarıdaki bu tablo düzeni ile, ben bunu yapmam gerek;
- DB sorguları az miktarda hızlı
- Arkadaşım listesindeki bir kullanıcının yayınlanan bir sayfadaki tüm durum girdileri göster (5.000 arkadaşlarına kadar olabilir)
- show all comments for each status entry under the appropriate blog
- show a username/photo URL for every status entry post
- show a username/photo URL for all comment posters next to there comment
Sonra ben sonuç myspace ya da sadece sadece ARKADAŞ tüm yazı / eylemleri ya da her neyse gösterecektir Facebook'a benzer.
Hatta benim bir statü yazı olarak yazı ve bu sayfadaki tüm cevapları düşünün, Ben başarmak için çalışıyorum ne yığın taşması üzerine bu sayfayı karşılaştırabilirsiniz durumu yazılan olacaktır, bu sayfadaki tüm cevaplar altında, her birinin altında yorumlarınızı gösterir ve hepsi kullanıcı bilgisi var, o kadar çok katılır ve malzeme olmadan bunu gerçekleştirmek için daha iyi bir yolu var mı?
Question 1
Is there anyway better to accomplish what I need? This is not really fast enough when there are millions of rows that it searches through even with indexes, what are my options?
Question 2
Is it possible to modify this to just show the first X ammount of comments on each status post? And if so, would that speed it up since it wouldn't have to search through as many comments?
Arkadaşım Listesi sorguda zaten Aşağıda, bunun nedeni bu yüzden 1 daha az sorgu olacak ben bir diziye arkadaş listesi almak ve memcache veya APC önbellekte saklamak için planı
Here is my query
SELECT s.statusid, s.userid, s.statustype, s.subject,
s.datetime, c.commentid, c.statusid, c.userid,
c.comment, c.datetime, su.disp_name,
su.pic_url, cu.disp_name, cu.pic_url
FROM teststatus AS s
LEFT JOIN teststatuscomments AS c
ON s.statusid = c.statusid
LEFT JOIN friend_reg_user AS su
ON su.auto_id = s.userid
LEFT JOIN friend_reg_user AS cu
ON cu.auto_id = c.userid
WHERE s.userid =1 OR s.userid
IN ( 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, // Remember this list of friend ID's
16, 17, 18, 19, 20 ) //can be from any ammount of ID's up to 5,000
ORDER BY s.statusid
PS) Ben kısa sürede bana izin verir gibi bu bir lütuf başlayacak