【发布时间】: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