使用关系数据库来存储投票和(错误访问的资源)是否过度杀伤?

时间:2014-07-09 00:32:33

标签: mongodb database-design relational-database database nosql

假设我正在为网站编写论坛组件,并希望跟踪用户访问的主题/问题,以便根据所述用户之前的选择推荐其他主题/问题。

我想象一个单独的数据/行不是很重要,它绝对需要每个条目的ACID属性;更不用说当用户群变大(大约数百万或数千万)时,这个数据集(投票和/或访问的主题)肯定会爆炸。这是使用say,MongoDB的情况吗?存储此类数据的一般方法是什么?

1 个答案:

答案 0 :(得分:2)

对于RDBMS来说,数以千万计的行并不是什么大不了的事情,你绝对可以使用它。

但是,您可能是正确的,因为您不需要大多数功能。像这样的AFAIK系统通常只需将访问数据记录到商店(日志文件,cassandra,...)并使用批处理作业来分析记录的数据并在博客之间创建建议或关系(之后可以存储)来实现。原因是,您需要相当复杂的算法,必须考虑所有数据,以获得您想要的信息。

因为简单的SQL查询不会给你必要的答案,并且对存储的读取访问时间对于批处理工作来说不太相关,所以你可以轻松地使用写优化的数据结构,如已经提到的日志和cassandra。