存储和分析历史数据 - 什么样的数据库?

时间:2012-06-29 20:00:53

标签: mysql plot nosql

我目前正在设计一个监视YouTube视频排名/视图的系统。很多youtube视频(> 500.000并且每天都在增长)。

我正在考虑将其存储在MySQL数据库中,但令我感到不安的是,该表会增长到数十亿和数万亿行,我认为这些行不会很好。

我需要分析这些数据,例如:

  • 在X和Y之间的时间里,哪些视频增长了很多
  • 每天点击次数
  • 每周绘制点击次数......
  • 还有一些我还不知道的事情

那么,我的Web 2.0思想是什么,NoSQL数据库有没有办法更好地处理这个问题?我没有完全了解这些(几乎)新的数据库,也不知道它们的功能。

您的建议是什么,使用什么类型的数据库? 关系与否?如果没有,哪个NoSQL数据库?

PS:首要任务是快速评估和插入结果,其次是高可用性(或只是复制)

1 个答案:

答案 0 :(得分:2)

很难为数据库系统提供建议,因为它总是取决于。但是,考虑到Facebook建立在MySQL之上,它表明可能性能不是对你的MySQL限制。

有用的,您可能已经完成的,是创建表结构应该如何的结构。然后还要考虑要对表运行的查询。

如果你有正确的索引(这是查询速度所依赖的主要和关键因素),你不必担心MySQL的性能。你应该考虑的是(我必须经历的),MySQL有很多有趣的东西如何处理索引。让我举几个例子,我必须在此期间弄清楚:

  • 如果要使用索引进行范围扫描,则索引不能再用于ORDER BY
  • 范围列必须是要使用的完整索引的连锁索引中的最后一列,再次与ORDER BY相同

有关更多信息,请访问mysqlperformanceblog.com:http://www.mysqlperformanceblog.com/2009/09/12/3-ways-mysql-uses-indexes/

一般来说,如果数据库的结构经过充分考虑并且索引很好,根据我的经验,如果你只有10.000行或100亿,实际上并不重要,查询时间大致相同。