关系型数据库和文档型数据库差别 -《DDIA》第二章

本文探讨了关系型数据库与文档型数据库在数据联结、查询性能、数据格式变化和查询语言上的区别,重点分析了它们在一对一到多对多联结中的存储策略,以及在不同查询场景下的性能优劣。

欢迎访问原文地址来阅读最新版本
转载请注明出处:https://kang.fun/kind-of-database

关系型数据库和文档型数据库差别

  1. 数据联结

    在表示一对一和一对多的数据联结上,二者差别在于存储方式不同:

    关系型数据库通过数据键联结,文档型数据库通常采用嵌套的方式将相关数据存储在一起。

    表示多对一和多对多时,也没有明显不同:都是采用唯一标识符来进行引用。该标识符在关系模型中称为外键,在文档模型中称为文档引用。

  2. 查询场景不同带来的性能差异

    存储方式的不同,也带来查询性能的不同:

    如果查询某项业务相关的完整数据,在关系型数据库中,多表关联需要对多棵树进行查询,但对于文档型数据库仅需要查询当前数据即可。

    而查询少部分数据时,文档型数据库需要传输整条数据,则相对较为笨重。

  3. 数据格式变更

    数据格式变更方面,文档模型更为灵活,直接用字段来编写新文档即可,而关系模型需要对整张表的数据进行清洗。

    另外,Mysql会采用复制表的方式进行表结构更新,因此大表更新非常缓慢。

声明式查询语言和命令式查询语言

声明式查询语言,更为接近人类语言,会隐藏更多的查询方式细节,这就给数据库引擎带来更大的优化空间,而使用者不需要过多关注存储细节。也就是说从性能方面对比,声明式查询语言的下限更高。

而由于场景不同,也能在查询语句不变的同时,随之采用不同的查询器。

声明式查询语言由于不指定执行的具体行为,在多核CPU的利用上更好,这就带来了更高的并发性能。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值