数据库类型和查询语言的分类

Posted by KANG's BLOG on Tuesday, March 15, 2022

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

1. 数据联结

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

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

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

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

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

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

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

3. 数据格式变更

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

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

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

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

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

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