更好的做法:将计数结果保存到现场还是不进行?

时间:2011-10-02 19:47:40

标签: mysql count

我正在开发一个音乐流媒体网站,我有两个主要的表:'活动'和'音乐'。除其他外,活动将每首歌曲复制保存到新记录中。

每次我从音乐中选择时,我都需要获取每首歌曲的复制数量。那么,什么是更好的做法

    SELECT music.song, music.artist, COUNT (activity.id) AS reproductions 
FROM music LEFT JOIN activity USING (song_id) WHERE music.song_id = XX 
GROUP BY music.song_id

或者最好将复制数量保存到音乐表的新字段中并查询:

SELECT song, artist, reproductions FROM music WHERE music.song_id = XX

这最后一个查询当然要容易得多。但要使用它,每次播放声音文件时,我都应该制作两个查询:活动表中的一个INSERT和音乐表上复制字段上的一个UPDATE

在这种情况下,更好的做法是什么?

1 个答案:

答案 0 :(得分:1)

这取决于这两个查询及时响应的响应时间。

表格会变得很大(假设)sql nr 2会更好。

你必须认为,即使插入也可能是昂贵的......你可能会考虑一些数据仓库,如果你在DB中有数百万行。