0

我正在研究涉及数据库中更新/选择查询的高执行的应用程序。哪个数据存储最适合我的场景

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

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

最近业务需求发生了一些变化,现在基表A中的一些属性(对于15-20条记录)将每20秒更改一次,并基于此我必须重新计算所有这些变化记录的一些值在表B中为所有用户。即使只有20个主记录发生更改,我需要重新计算并更新20万个用户记录,这需要20多秒,然后进行下一次更新,最终导致所有Select查询排队。我收到来自在线用户的3个获取请求/ 5秒钟,这导致了6-9个选择查询。要通过API请求的响应,我一直使用的字段表B.

我可以买更多的处理能力和解决这一情况,但我感兴趣的是有正确缩放系统,该系统甚至可以处理100万用户。

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

干杯 罐子

回答

0

我建议在内存数据库管理系统,充分实现了MVCC,看着一个以消除阻塞问题。如果您的应用程序当前正在使用SQL,那么没有理由将其转移到nosql。您所描述的性能需求当然可以通过内存中支持SQL的DBMS来满足。

0

我的理解是,你每20秒就会更新200K条记录。然后就像在10分钟内你会更新几乎所有的数据。在那种情况下,为什么要将这些状态写入数据库(如果这种情况经常更新)。我对您的要求一无所知,但为什么不使用表A中的数据按需计算呢?

相关问题