【问题标题】:MySql database for lot of data [closed]用于大量数据的 MySql 数据库[关闭]
【发布时间】:2014-12-19 14:25:11
【问题描述】:

我想创建一个移动应用程序,需要每分钟发送数据到带有 mysql 数据库的后端服务器。

因此,如果我有 10000 个用户每天工作 8 小时,那将是:

60 次请求 * 8 小时 * 30 天 * 12 个月 = 一位用户每年 172800 次请求。

10 000 个用户 * 172800 = 1 728 000 000

这是我认为mysql数据库的很多数据,所以你建议什么?我需要使用什么?什么样的数据库? NoSql 或 mysql 可以处理吗?

【问题讨论】:

  • 我认为移动应用程序的请求很多!
  • 你要存储什么样的数据?
  • 用户是否知道应用程序每年占用的带宽?
  • 在不知道您的应用程序将如何查询此数据库以及如何使用和存档数据的情况下回答您的问题是不可能的。
  • 你看过本地存储吗?

标签: php mysql sql performance nosql


【解决方案1】:

如果您每分钟有 10,000 个用户数据,那么这就是每秒 10,000/60 ~= 200 次插入。这是一个很大的负担,但并非不合理。但是,它确实带来了很多问题,例如:

  • 如何使用这些数据?
  • 您的备份策略是什么?
  • 需要多少历史记录?
  • 您如何管理网络带宽?
  • 什么是峰值插入率?
  • 数据需要多快可用?
  • ACID 合规性有多重要?

这些问题的答案应该可以帮助您确定最佳数据源。 MySQL 和键值 No-SQL 数据库都可以应对这一挑战。 MySQL 数据库每年可以处理数十亿行。典型的 No-SQL 数据库(MongoDB、Dynamo DB 等)也可以处理这种数据量。

【讨论】:

  • 1.我只需要发送用户位置(坐标)
  • 就像每个应用程序都这样做(fitBit、每个跟踪用户活动的应用程序等健康应用程序)
  • @LaraBeginer 为什么不使用某种数据流服务来发送坐标?
  • ?怎么样,我不明白如何进行数据流处理?
  • @LaraBeginer 尝试谷歌搜索 WebSockets
【解决方案2】:

MySQL 可以处理这个,没问题。您需要问自己的第二个问题是您的服务器是否可以每分钟处理 10K 请求(也许您正在共享它)。

您应该尝试计算每秒或每分钟的请求数,每年有点模棱两可。因此,如果有 10K 用户,每个用户每分钟 1 个请求就足够了。 这很多,但可行。

如果您需要数据,我会调整性能。

例如,如果您不介意延迟 1 小时:在您的手机数据库中每分钟注册一次数据,仅每小时发送一次数据并作为批处理插入您的 MySQL。 这是请求和插入查询的 1/60。 这有利于您的服务器负载和用户体验,即耗尽电池寿命。

【讨论】:

  • 我完全同意本地存储,但是如果用户退出应用程序,如何处理本地存储?
  • 我看到类似的应用程序有更多的用户,等等。fitbit 和类似的健康应用程序每秒跟踪用户的位置、步数和类似...
  • 移动应用程序可以运行后台服务,这些服务会继续做您想做的事情,例如每小时发送收集的数据。这取决于您何时要发送数据,用户需要知道您是否收集数据并在应用程序未打开时发送数据。例如,您可以在用户登录时收集数据,并在用户注销时停止收集数据。发送部分完全由您的服务异步完成。
  • 好吧,总结一下:电池问题,服务器问题,所以我需要做一个每小时同步一次的locaStorage服务
  • 这些不是结论,而是开放的问题和选项。您需要总结您的愿望、可用的工具和硬件。然后根据以上所有做出选择。这就是戈登想要表达的。所以 MySQL 可以处理它,其他问题是您需要查看的其他点,并改进您的设计/概念验证。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-13
  • 2011-05-14
  • 2012-04-18
  • 2013-07-10
相关资源
最近更新 更多