栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

基于文档的数据库与基于键/值的数据库之间的区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于文档的数据库与基于键/值的数据库之间的区别?

主要区别在于数据模型和查询功能。

键值存储

第一种非常简单,可能不需要进一步说明。

数据模型:超过键值存储

尽管对于诸如Cassandra之类的数据库的正确名称存在一些争论,但我想将其称为 列族存储
。尽管键值对是Cassandra的重要组成部分,但不仅限于此。它允许您嵌套键值对,因此一个键可以引用多个子键值对。

但是,您不能无限期地嵌套键/值对。您仅限于三个级别(列族)或四个级别的嵌套(超级列族)。如果术语“列族”不响,请参阅WTF的SuperColumn文章,它很好地解释了Cassandra的数据模型。

文档数据库
(例如CouchDB和MongoDB)以JSON对象的形式存储整个文档。您可以将这些对象视为嵌套的键/值对。与Cassandra不同,您可以根据需要嵌套键-
值对。JSON还支持数组,并且可以理解不同的数据类型,例如字符串,数字和布尔值。

查询方式

我相信只能通过键或编写map-
reduce函数来查询列族存储。您无法像在SQL数据库中那样查询值。如果您的应用程序需要更复杂的查询,则您的应用程序将必须创建和维护索引才能访问所需的数据。

文档数据库还支持按键和map-
reduce函数进行查询,但是还允许您按值进行基本查询,例如“给我所有拥有10条以上帖子的用户”。文档数据库以这种方式更加灵活。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393190.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号