首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在讨论MongoDB和Cassandra时,“面向文档的”和“键值”是什么意思?

在讨论MongoDB和Cassandra时,“面向文档的”和“键值”是什么意思?
EN

Stack Overflow用户
提问于 2010-06-15 22:14:58
回答 3查看 44.4K关注 0票数 138

与KV商店相比,基于文档的NoSQL选项能为您带来什么,反之亦然?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-20 02:42:09

键值存储提供了最简单的数据模型,顾名思义:它是一个存储由键索引的值的存储系统。您只能通过键进行查询,并且值是不透明的,存储对它们一无所知。这允许非常快的读写操作(一个简单的磁盘访问),我认为这个模型是一种非易失性缓存(即,如果您需要通过键快速访问长期数据,则非常适合)。

面向文档的数据库扩展了以前的模型,并以数据库可以理解的结构化格式(文档,因此得名)存储值。例如,一个文档可以是一篇博客文章,并以一种非规范化的方式存储和,以及标签。因为数据是透明的,所以存储可以做更多的工作(比如对文档的字段进行索引),并且您不限于通过键进行查询。正如我所暗示的,这样的数据库允许通过一次查询获取整个页面的数据,并且非常适合面向内容的应用程序(这就是为什么像Facebook或Amazon这样的大网站喜欢它们)。

其他类型的NoSQL数据库包括面向列的存储、图形数据库甚至对象数据库。但这超出了问题的范围。

另请参阅

票数 183
EN

Stack Overflow用户

发布于 2010-06-20 00:53:27

在过去的一个月左右,我一直在调查NoSQL。我认为通常可以这样说:

  • KV商店不知道为关键
  • 文档实际存储的值内容,这允许您在值内容中定义二级索引,因为数据库知道文档结构(例如博客文章的标签)。
  • NoSQL解决方案每个解决方案都有应该考虑的特定功能,例如KV商店中的
    • 特殊数据类型(例如,在redis中具有左/右弹出/推送的集合)
    • riak所说的简单的扩展/缩小群集(我还没有尝试过...Voldemort
    • build-in web配置中的yet)
    • pluggable数据存储和CouchDB / couchapp

中的web应用程序支持

票数 22
EN

Stack Overflow用户

发布于 2020-08-12 17:43:48

在键值数据库模型中,用户可以选择键是什么,而文档模型中的文档标识符通常是system-generated.

  1. 键值数据库模型中的键值对不能分组,而在文档数据库中,我们可以将键值对分组到单独的文档中;而且,某些形式的文档数据库甚至允许我们进一步分组这些文档,即所谓的“集合”或“域”。

尽管文档数据库中的文档具有明确定义的内部结构(因此,DBMS可以对其进行操作;例如,创建索引),但对于键值数据库中的值,情况并非如此,在这种数据库中,这些值的任何可能的内部结构对于DBMS perspective.是不透明的(

  1. 在键值模型中,访问多个数据库条目(在本例中是键值对)需要单独的请求。另一方面,在文档模型中,可以在单个请求中检索多个数据库条目(在本例中为文档)。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3046001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档