gpt4 book ai didi

database - 为什么要使用非关系数据库?

转载 作者:太空狗 更新时间:2023-10-30 01:49:07 26 4
gpt4 key购买 nike

最近的数据库热潮似乎集中在非关系数据库上。为什么?这似乎适得其反。例如,以关系方式表达我的数据对我来说更有意义(Django 中的示例代码 + SQL 表):

class Post(models.Model):
name = models.CharField()
created = models.DateTimeField(auto_now_create = True)

class Comment(models.Model):
text = models.TextField()
post = models.ForeignKey('Post')
created = models.DateTimeField(auto_now_create = True)

SQL:

create table post (id int primary key auto_increment,
name varchar,
created datetime);

create table comment(id int primary key auto_increment,
text text,
post_id int,
created datetime,
foreign key post_id references post(id));

SQL 的强大之处在于可以用这么多多种方式来表达这些信息。当然,整个对象关系映射问题都存在,但我将其视为一个特性而不是一个问题。使用 SQL,我可以获取比昨天更早的给定帖子的所有不同评论,将所有这些整理在一起,并生成统计信息。非关系数据库也可以这样做吗?

使用像 MongoDB 这样的非关系数据库似乎也会真正影响性能,因为您会立即获取整个对象图,而不是您最低限度需要的东西。

有人可以向我解释一下使用非关系数据库有什么好处吗?

最佳答案

看看 CAP Theorem

还有 PACELC interpretation

关系数据库倾向于做出一组权衡,而非关系数据库倾向于做出一组不同的权衡。对于海量分布式数据集,非关系有时更有意义。

从某种意义上说,非关系数据库可以消除很多 ORM 痛苦,但同样总是需要权衡取舍。在某些用例中,非关系存储可以更快,因为特定层次结构的所有数据可以更靠近地存储在磁盘上。另请注意,非关系数据库仍然具有查询功能。

最后,它是关于为您的特定用例做出适当的权衡。

关于database - 为什么要使用非关系数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7935281/

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