开发者

Better practice: saving count result into field or not?

开发者 https://www.devze.com 2023-04-10 17:55 出处:网络
I\'m devloping a music streaming site where I have two major tables: \'activity\' and \'music\'. Activity saves, among other things, every song reproduction into a new record.

I'm devloping a music streaming site where I have two major tables: 'activity' and 'music'. Activity saves, among other things, every song reproduction into a new record.

Every time I select from music I need to fetch the number of reproductions of every song. So, what would be the better practice

    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

Or would it be better to save the number of reproductions into a new f开发者_Go百科ield in the music table and query this:

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

This last query is, of course, much easier. But to use it, every time I play a soundfile I should make two querys: one INSERT in the activity table, and one UPDATE on the reproductions field on music table.

What would be the better practice in this scenario?


Well this depends on the response times these two queries will have in time.

After tables will become huge (hypothetically) sql nr 2 will be better.

You have to think that in time even insert might be costly...you you might think on some data warehousing if you will have ..millions of rows in DB.

0

精彩评论

暂无评论...
验证码 换一张
取 消