Database 一起使用NoSQL和RDB

Database 一起使用NoSQL和RDB,database,nosql,Database,Nosql,是否建议在同一应用程序中使用NoSQL和RDBMS?将关系/事务数据管理到RDBMS和NoSQL中的动态数据,以及用于分析的后者 是 您可以在同一个应用程序中同时使用NoSQL和RDBMS,事实上许多项目使用相同的方法 在工作环境中,您的业务的不同实体之间有一个关系映射,主要是规范化的。因此,建议在那里使用RDBMS。 虽然有一些NoSQL解决方案,您可以自己处理这些问题,但您永远不会需要它,因为在NoSQL中,您可以将相关数据放在一个大表中,但在这里,您必须仔细考虑其结构, 在的情况下,RDB

是否建议在同一应用程序中使用NoSQL和RDBMS?将关系/事务数据管理到RDBMS和NoSQL中的动态数据,以及用于分析的后者

您可以在同一个应用程序中同时使用NoSQL和RDBMS,事实上许多项目使用相同的方法

在工作环境中,您的业务的不同实体之间有一个
关系映射
主要是规范化的
。因此,建议在那里使用RDBMS。 虽然有一些NoSQL解决方案,您可以自己处理这些问题,但您永远不会需要它,因为在NoSQL中,您可以将相关数据放在一个大表中,但在这里,您必须仔细考虑其结构, 在
的情况下,RDBMS结构是直接的(主要是标准化的)

因此,最好在这里使用RDBMS

现在,对于
分析,您应该使用NoSQL
,因为内容主要是线性的,您需要一个
平面结构,只有一个表包含所有必需的字段。
中的这种方法可以与不同的表进行比较
,因为随着数据的增长,
连接将使查询变得非常慢
,检索数据将是一件非常痛苦的事情,尽管数据库技术中的一些大公司在RDBMS中提供了很多解决方案,但我不赞成使用它们

另外,分析是指您正在分析的参数经常更改的情况。
非基于模式的数据库可以在很大程度上提高您的生产率。

从个人经验来看:-我们使用
MSSQL作为网站和分析的主数据库
,但随着数据的增长,我们尝试了许多方法,最终决定使用
Mongo作为分析数据库
as
MSSQL作为主数据库

SO the project uses MSSQL for transaction(functional) working 
and Mongo for Analytics 

@丁卡塔库尔。我不确定我是否完全同意。RDBMS设计用于连接,如果设计良好,将允许您运行在设计时没有预料到的查询。NoSQL解决方案可能更灵活,但如果您想要运行一种新的查询,而您的文档并不是为处理这种查询而设计的,那么您就有麻烦了。多态解决方案可能非常强大,但你需要小心。我完全同意你的观点,John,但是当你必须进行分析时,你必须进行多个连接来获取所有类型的数据。随着数据的增长,查询变得越来越慢。虽然您可以对表进行水平分区,但这并不容易,因为您必须维护插入和更新,而且使用NoSQL分片技术非常容易。您需要提供更多关于您希望完成的任务、您拥有的数据类型等的详细信息。正如目前所述,这实在太广泛了。