gpt4 book ai didi

sql - 如何在当前基于关系数据库构建的应用程序中实际集成 NoSQL 数据库

转载 作者:搜寻专家 更新时间:2023-10-30 23:05:30 27 4
gpt4 key购买 nike

考虑到 NoSQL 在分布式设置和大量数据/水平可伸缩性方面的优势以实现快速访问,对于某些实现来说,像 mongodb 这样的 nosql 数据库是个好主意。

然而,nosql 数据库似乎有其优点和缺点。关系数据库似乎有明显的优势,特别是对于当前构建在关系数据库上的应用程序而言。

在这种情况下,我想问一下,建立两个数据库是否有优势,一个用于 NoSQL 类型的数据,另一个用于其他用例,这些用例由需要关系数据库类型约束的业务需求预测和特点? (连接和跨表事务)。这是一种实用且常见的做法吗?

例如,相对于存储 NoSQL 数据库的其他动态数据,twitter 或 facebook 拥有用于用户登录信息和用户帐户的关系模型有意义吗?

最佳答案

当然可以。许多成功的公司正是这样做的。

NoSQL 数据库旨在针对特定查询负载的访问进行优化,这与非规范化关系数据库旨在帮助特定查询的方式大致相同。

而规范化关系数据库旨在防止数据的冗余或异常存储。

这两个目标在适当的上下文中都很重要。因此,关系型和非关系型都有一席之地(非规范化 RDBMS 属于后一类)。

SQL 或 NoSQL 数据库其中之一可能看起来不是最佳选择的地方是,当它们被不适本地用于一项任务时,另一个会更好。

纯粹规范化的 RDBMS 是万事通,无所不能,因为它们支持各种各样的查询。但是,如果您不需要支持针对特定数据集的各种查询,那么非规范化或 NoSQL 都可以提供帮助。

当您厌倦了设计架构和时不时地执行 ALTER TABLE 来添加列时,NoSQL 很有吸引力。但是,如果您为一个查询负载设计一个 NoSQL 数据库,然后发现您还需要支持针对相同数据的完全不同的查询负载,那么您可能会陷入困境。您要么遭受缓慢查询的困扰,要么克隆整个数据集,但以不同的结构存储。

关于sql - 如何在当前基于关系数据库构建的应用程序中实际集成 NoSQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26960136/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com