我会建议你使用MongoDB,我目前有几个它运行存储数百万文件的实例。与通常的关系模式相反,您可以使用MongoDB对子文档的支持。
MongoDB是一个NoSQL数据库,但它非常易于使用,并且如果您熟悉数据库和日常OO,就可以开始使用。
MongoDB中有最流行的语言,包括Ruby,所以你可以安装Ruby的驱动程序(假设这是你想用什么)通过使用宝石运行以下命令司机:
gem install mongo
如果运行Debian/Ubuntu简单isntall mongodb与以下内容:
apt-get install mongodb
这应该让你开始。
根据每个记录的大小,可以采用各种不同的设计,MongoDB目前每个文档有16MB的限制,所以这是您需要注意的事情。
我想有一个集合命名的网站,用于存储有关您正在监视网站的基本信息(名称,网址,参考客户端,...)
然后有将被用来存储其他集合你的统计数据,可以称为“统计数据”,我会将每个子文档(每分钟的统计数据)存储在另一个文档中,这些文档将保存一天的数据。
所以在统计每个文件将是这样的:
{
_id : X,
website_id : STORE_THE_ID_HERE,
timestamp_start : PUT_THE_TIMESTAMP_WHEN_YOU_START_MONITORING_HERE,
timestamp_end : SAME_AS_ABOVE_REALLY,
stats_count : A_DENORMALIZED_COUNT_OF_STATS
stats : [ { views : X, clicks : X2, ... },
...
]
}
希望,让你开始,我想如果你愿意试一试的MongoDB完全符合您的要求。
这个答案对我来说听起来很棒。我会试一下! – Arti 2012-02-09 18:46:15