在分布式数据库中存储新闻与RDBMS

时间:2010-06-16 03:52:07

标签: couchdb nosql riak rdms

大家好:如果我将新闻文章存储在具有不同类别(如“Tech”,“Finance”和“Health”)的数据库中,那么分布式数据库在此系统中与RDBMS相比是否可以正常运行?每个新闻项目都会附上新闻文章以及其他一些项目。我想知道查询是否会更快。

假设我从来没有超过一百万行,我想抓住最新的(在5小时内)科技文章。我想这将是“给我所有科技文章”(可能是10000)的地图缩减,然后只清除那些有最新时间戳的那些。

我是否正在考虑以正确的方式解决问题,DDB是否会成为最佳解决方案?在几年内可能有500万件物品,但即便如此......

1 个答案:

答案 0 :(得分:3)

是否使用分布式数据库或键值存储更多地取决于您的操作要求而不是域问题。

当人们询问如何在Riak中进行按时间排序的查询时,我们通常会提出几种策略(尽管Riak缺少有序范围查询,但它们都不是银弹):

1)如果您经常访问特定大小的时间段,请将数据分成反映该时段的数据桶。例如,指定的日,小时或分钟的所有数据都将存储或链接到包含适当时间戳的存储桶。如果我想要今天的所有科技新闻,那么桶名可能是“tech-20100616”。当您的数据进入时,请从时间框中添加适当的链接到实际项目。

2)如果数据更加面向序列且与特定时间点无关,请使用链接创建数据链,在时间,向前或两者中向后链接。 (这也适用于版本化数据,例如维基页面。)您可能还需要保留一个仅指向列表头部的对象。

除了这些策略之外,Riak可能不是最新信息的100%解决方案,但对于长期存储可能更好。您可以将它与Redis,memcached甚至MongoDB(如果您的数据具有轻微的瞬态并且可以适应内存时具有出色的性能)相结合,以保存最新内容的滚动索引。