MySQL vs NoSQL,哪一个用于计算非常大的数据集的平均值

标签 mysql nosql

<分区>

问题是我每天需要为很多实体每天存储 1 个整数(添加带有时间戳的新数据)(比方说 10 万个实体,但它们很容易是 100 个或什至 50 亿个)随着实体人口的增长)

实体按层次结构分组,我可以使用它们进行过滤。

现在我想要一种快速的方法来计算一段时间内这数百万个值的平均值(也许还只使用过滤后的数据计算平均值)。我的直觉是,随着这些数据的增长(每天可能有 2000 万行),将很难保证性能。

您能提出一个简单的解决方案吗?我应该坚持使用 MySQL 还是其他一些奇特的 NoSQL 解决方案会更好。就目前而言,仅对所有实体进行计数已经非常缓慢(也许 MySQL 需要调整)

编辑: 因此,当检索到值时,某些值变为 null(这意味着关于这些值什么都不能说)。因此,在跨越 2000 年 1 月 1 日和 2000 年 1 月 10 日之间的查询中。如果 2 个值为空,那么对于平均计算,将使用 8 个数据点(并且将除以 8 进行平均计算,所以它不像除以天数)。我担心的是,即使 count() 也需要 s** 的时间。也许它与调整有关,但我会对一些不需要调整并且也适用于这个特定问题的东西感兴趣

最佳答案

您可能应该研究 OLAP 解决方案,其中聚合数据是游戏的名称。 RDBMS 通常不能很好地处理聚合(当然,有一些方法可以帮助它进行索引、分区等)。但是,OLAP 多维数据集旨在处理大量聚合和动态切片。

关于MySQL vs NoSQL,哪一个用于计算非常大的数据集的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7176772/

相关文章:

mongodb - 如何连接 MongoDB 中多个文档的数组?

database-design - Nosql 多对多

java - 读取/写入/存储非常大的顺序数据集

javascript - 基于订阅的 nosql 内存数据库

join - 如何在 Elasticsearch 中进行连接——或在 Lucene 级别

java - 为什么 rs.Next() 跳过列

Mysql - 基于字段值的连接字段

php - 我将如何在 sql 查询中执行数学运算来计算百分比差异?

php - 在 for 或 foreach 循环中执行此查询是不好的做法吗?

javascript - PHP使用复选框从数据表中删除多行