什么是文档数据存储?什么是键值数据存储?
请以非常简单和一般的方式描述每一个背后的机制.
在文档数据存储中,每个记录都有多个字段,类似于关系数据库.它还有二级索引.
示例记录:
"id" => 12345, "name" => "Fred", "age" => 20, "email" => "fred@example.com"
然后,您可以按ID,姓名,年龄或电子邮件进行查询.
键/值存储更像是一个大的哈希表,而不是传统的数据库:每个键对应一个值,并通过一个键查找,这是访问记录的唯一方法.这意味着它更简单,通常更快,但很难用于复杂的数据.
示例记录:
12345 => "Fred,fred@example.com,20"
您只能使用12345作为查询条件.您无法查询姓名,电子邮件或年龄.
以下是一些常见数据模型的描述:
关系系统是我们已经使用了一段时间的数据库.支持ACIDity和连接的RDBMS和系统被认为是关系型的.
键值系统基本上支持基于主键的get,put和delete操作.
面向列的系统仍然使用表但没有连接(必须在应用程序中处理连接).显然,它们按列存储数据,而不是传统的面向行的数据库.这使聚合更容易.
面向文档的系统存储结构化的"文档",例如JSON或XML,但没有连接(必须在应用程序中处理连接).将数据从面向对象的软件映射到这些系统非常容易.
从这篇博客文章我写道:NoSQL系统的可视指南.