gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 02:32:19 24 4
gpt4 key购买 nike

我目前正在设计一个系统来观看 YouTube 视频的排名/观看次数。每天都有大量的 YouTube 视频(> 500.000 并且还在增加)。

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

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

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

所以,我对 web 2.0 的想法是,NoSQL 数据库是否可以更好地处理这个问题?我不太了解这些(几乎)新数据库,也不知道它们的功能。

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

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

最佳答案

很难为数据库系统提供建议,因为它总是取决于情况。但是,考虑到 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 亿行实际上并不重要,查询时间将大致相同。

关于mysql - 历史数据的存储和分析——什么样的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11268214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com