1

我有几张桌子:

media: id, name, score
media_rating: id, value, media_id, user_id

用户对网站和系统进行评级:

  1. 创建新闻 media_rating 记录
  2. 通过 media_rating 的值增加适当媒体上的分数

问题:每秒有 500 到 1000 条新记录的媒体收视率。我需要从媒体中阅读以向用户提供媒体以进行评分,但我觉得该表完全被所有正在创建的新 media_rating 的分数更新所轰炸。请求像疯了一样失败。

我怎样才能使这个东西规模化?

4

3 回答 3

0

Your second step is in fact not necessary, as you have the data already available with a simple query (something like SELECT COUNT(*) FROM media_rating WHERE media_id = x). Although this saves you from a lot of updates, it could create another problem, as every time you want your users to present the rating you'd need a count. A count isn't necessary extensive, so it might save you some (as you have to query the database anyway when retrieving the current rating). If it still gives you problems, you could 'delay' the rating count; update the score only once in a while (with either a cronjob or poormans-cron)

于 2012-06-06T23:39:17.493 回答
0

也许完全避免使用 MySQL 可能是答案。我在过去使用 Redis (http://redis.io/) 做类似的事情时取得了巨大的成功。阅读文档(http://redis.io/documentation),它可能会引导您朝着正确的方向前进。

于 2012-06-06T23:28:17.907 回答
0

将其视为网络分析问题可能会导致您走上一些有用的道路...例如仅记录实际评级的样本...

在 PHP/MySQL 中计算页面浏览量的最佳方法是什么?

于 2012-06-06T23:56:19.987 回答