我想弄清楚如何以最有效的方式做到這一點,因爲我有大表。如何高效地計數mysql上的事件
我有兩個表:photos
和favorites
(想想像Flickr或Facebook :-)。
對於每張照片P,我希望P上傳者在她上傳照片之前收到的P的創作者總數的總數。換句話說,我想要提交直到她分享的時刻P.
表photos
包括列:id
,user_id
,upload_timestamp
。
表favorites
包括列:photo_id
,user_id
(用戶的最愛項目),fave_timestamp
。
結果集應該有列:photo_id, user_id (creator of the photo), pre_faves_count
。
photos
表有200萬條記錄。 favorites
有1000萬條記錄。
我試圖做這樣的事情
select count(favorites)
FROM favorites, photos
WHERE favorites.photo_id
and photos.id
and favorites.fave_timestamp < photos.upload_timestamp
group by favorites.photo_id, favorites.user_id
- 但我敢肯定
您有哪些索引? – 2012-02-26 23:29:27
我有每個表的ID的索引。 – amh 2012-02-26 23:49:25
我已經嘗試做像選擇計數(收藏夾)從'收藏夾','照片'WHERE favorites.photo_id和photos.id和favorites.fave_timestamp
amh
2012-02-27 00:43:36