我什么时候想要使用文档数据存储以及何时存储键值数据?

时间:2012-09-07 15:17:08

标签: database nosql key-value-store document-database

我何时想使用文档数据存储以及何时使用键值数据存储

谢谢!

1 个答案:

答案 0 :(得分:0)

没有明显的区别。

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

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

最终,这些类别并不重要。每种数据库技术都是不同的,每种技术都有利有弊(尽管它们都声称自切片面包以来是最好的)。找出您的需求,并基于此评估数据库。你可能想要考虑的一些事情:

  • 你的数据是什么样的?你想怎么建模?
  • 您需要什么样的复制?有些NoSQL DB做主从,有些有控制节点,有些则是无共享。
  • 他们是否有您计划编码的语言的API?
  • 还有更多......