有很多问题和答案涵盖了类似的概念,但没有一个与我们的概念相近。
我们的应用程序建立在 Java(API)、AngularJs(前端)上,使用 MySql 作为数据库。到目前为止,还没有在我们的应用程序中存储用户活动的概念。
但是现在,我们必须捕获所有用户活动(这几乎包括所有内容)。其中一些活动是“用户已查看约会#”、“用户已更新事件信息”、“用户已激活/停用其他用户”等...
以下是我们需要考虑的事项:
- 最初我们的数据会少得多(可能每天有 10 万条记录)。
- 所有这些用户活动几乎都是写入繁重且读取部分非常非常少。
- 我们以这样一种方式设计了审计表(MySql),它们将保存跟踪用户的每一个活动所需的关键信息。
对以下几个方面感到困惑:
- 我们的一些同事和老板对 MySql 不满意,因为他们预计我们的应用程序会在受到关注时突然出现大量活动。
- 还有建议使用 Graph DB,我认为这绝对没有必要。因为按照设计,它是一个三重存储数据库,用于使用节点和边存储关系数据。
建议的小背景:有一个建议将整个应用程序数据从 MySql 迁移到 GraphDB 作为未来的实现(这将在我们开始迁移部分之前有一段时间,而且我们的员工都不熟悉 Graph DB 知识)。所以我们的老板坚持要我们从这个开始。
我的问题和我需要您的意见的问题是:
- 仅将 Graph DB 用于用户活动是个好主意吗?
- 如果我们要使用 Graph DB,哪个是最好的免费 Graph DB?
- 或者,我们是否可以为此目的使用 NoSQL DB,例如 mongoDB?