哪个数据存储最适合我的场景

时间:2015-11-02 08:12:00

标签: database database-design database-performance in-memory-database nosql

我正在处理一个涉及在数据库中执行更新/选择查询的应用程序。

我有一个基表(A),每天有一个实体约有500条记录。并且对于系统中的每个用户,基于用户的一些偏好创建该实体的变体,并将它们存储在另一个表(B)中。这是由每天午夜运行的cron作业完成的。

因此,如果表A中有10,000个用户和500个记录,那么表B中将有5M记录。我总是在这些表中保存一天的数据,午夜我将历史数据存档到HBase。此设置工作正常,到目前为止我没有性能问题。

最近业务需求发生了一些变化,现在基表A中的一些属性(15-20条记录)将每20秒更改一次,基于此我必须重新计算所有这些变量记录的值。表B适用于所有用户。即使只有20个主记录发生变化,我需要重新计算并更新200,000个用户记录,这需要超过20秒,然后下一次更新最终会导致所有Select查询排队。我从在线用户那里得到大约3个请求/ 5秒,这导致6-9个选择查询。为了响应api请求,我总是使用表B中的字段。

我可以购买更多处理能力并解决这种情况,但我有兴趣拥有一个可以处理甚至一百万用户的适当规模的系统。

这里有人能提出更好的选择吗? nosql +关系数据库对我有帮助吗?是否有任何平台/数据存储可让我在不锁定的情况下频繁更新数据,同时让我可以灵活地在实体的各个字段上运行选择查询?

干杯 壶

1 个答案:

答案 0 :(得分:0)

我建议查看完全实现MVCC的内存DBMS,以消除阻塞问题。如果您的应用程序当前正在使用SQL,那么没有理由将其从那个转移到nosql。您所描述的性能要求当然可以通过内存中支持SQL的DBMS来满足。