【问题标题】:Deciding between mongoDb vs Mysql vs hadoop在 mongoDb vs Mysql vs hadoop 之间做出决定
【发布时间】:2016-05-31 20:09:12
【问题描述】:

我正在设计和实现应用程序的数据层。做了一些基础研究,发现 NoSql 可能对我来说看起来不错,因为结构不太复杂且简单。

我的要求是托管一个包含近 800,000 条记录的表,这在我看来并不多,即使是最差的数据库也可以轻松处理。

不过我的阅读量会比较高。随时接近200,000。我的阅读查询:

读取:(任何瞬间200,000)

    Select Sum(columnA, columnB),  Sum(columnC, columnD) from Table where 
( column E ='X' OR column F='Y'  or column G='X' OR column H='Y' ) Group 
by columnK Having Count(*) =4 order by columnK

写入:每分钟 30 行插入(无更新)

鉴于此,我发现任何普通数据库都可以。但在我的情况下,每一毫秒都很重要,因为这是一个财务应用程序,任何响应时间的减少都会有所帮助。最好的方法是什么?

【问题讨论】:

  • 如果您不需要向外扩展,那么普通的 RDBMS 还不够吗?
  • 谢谢哈夫纳。我需要尽快扩大规模。速度和响应时间正是我所追求的。如果一个选项比另一个选项节省了我 5 毫秒,我会选择那个。
  • 这些数字对我来说有点奇怪,描述也是(财务数据对速度的要求较低,对耐用性的要求很高,因此更多时候是消息驱动的),但就这样吧。 80 万条非互连数据记录? MMapped 二维数据结构。这就是 MongoDB 所做的。请记住,只有文档写入是原子的,但正确的数据建模不是问题。
  • Hadoop 通常更适合长时间运行的查询(数小时和数天),而 MongoDB 通常更适合快速查询(不到一分钟)。

标签: mysql mongodb bigdata nosql


【解决方案1】:

如果你想走 NoSQL 路线,如果你认为你的情况需要这样做,我建议将 Hbase、MongoDB 和 Cassandra 视为潜在的竞争对手。

还知道他们不支持开箱即用的 SQL。 (例如,对于 HBase,您可以使用 Phoenix 作为 HBase 之上的 SQL 层)

NoSQL 的工作方式与普通 (My)SQL 的工作方式不同,因此您可能需要在做出选择之前先了解内部工作原理。

在 POC 中进行彻底比较,看看哪种方法最适合您的用例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    • 2011-03-04
    • 2012-05-12
    • 2012-04-21
    • 1970-01-01
    相关资源
    最近更新 更多