Database 何时使用文档数据存储,何时使用键值数据存储?

Database 何时使用文档数据存储,何时使用键值数据存储?,database,nosql,key-value-store,document-database,Database,Nosql,Key Value Store,Document Database,何时使用文档数据存储,何时使用键值数据存储 谢谢大家! 没有明确的区别 在键值存储中,有一个键(通常是一个字符串)对应于一包位。例如,Memcached。您可以在“值”部分中放入任何内容:JSON文档、序列化数据结构、压缩或加密文件等。一般来说,它只是位 另一方面,文档存储意味着您需要以某种格式存储数据。MongoDB就是一个例子,它使用二进制版本的JSON。数据库可以通过查看文档的内容来提供索引,也可以允许某种形式的查询。您可以获得一些额外的功能,但也受到格式的限制。例如,如果您有一个使用JS

何时使用文档数据存储,何时使用键值数据存储


谢谢大家!

没有明确的区别

在键值存储中,有一个键(通常是一个字符串)对应于一包位。例如,Memcached。您可以在“值”部分中放入任何内容:JSON文档、序列化数据结构、压缩或加密文件等。一般来说,它只是位

另一方面,文档存储意味着您需要以某种格式存储数据。MongoDB就是一个例子,它使用二进制版本的JSON。数据库可以通过查看文档的内容来提供索引,也可以允许某种形式的查询。您可以获得一些额外的功能,但也受到格式的限制。例如,如果您有一个使用JSON的文档存储,那么您的数据可能会比存储Protobuf之类的紧凑序列化格式占用更多的空间,并且解析速度会较慢

归根结底,这些类别意义不大。每一种数据库技术都是不同的,每一种都有优点和缺点(尽管它们都声称是自切片面包以来最好的东西)。找出您的需求,并在此基础上评估DBs。您可能需要考虑以下事项:

  • 你的数据是什么样的?您希望如何对其进行建模
  • 您需要什么样的复制?一些nosqldbs是主从的,其他的有一个控制节点,其他的没有共享
  • 他们是否为您计划使用的语言提供了API
  • 还有更多

这是一个非常广泛的问题,每个人都可能有自己的理由。解决您的问题的更好方法是了解每种类型的数据库,并自行决定什么对您的特定情况更有意义。有人提出了类似的问题