1、键值(Key-Value)存储数据库
这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。
相关数据库 |
Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB |
典型应用 |
|
数据模型 |
一系列键值对 |
优势 | |
劣势 | 存储的数据缺少结构化 |
2、列存储数据库
这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。
相关数据库 | Cassandra,HBase,Riak |
典型应用 | 分布式的文件系统 |
数据模型 | 以列簇式存储,将同一列数据存在一起 |
优势 | 查找速度快,可扩展性强,更容易进行分布式扩展 |
劣势 | 功能相对局限 |
3、文档型数据库
文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。
相关数据库 | CouchDB、MongoDB |
典型应用 | Web应用 |
数据模型 | 一系列键值对 |
优势 | 数据结构要求不严格 |
劣势 | 查询性能不高,而且缺乏统一的查询语法 |
4、图形(Graph)数据库
图形结构的数据库同其他行列以及刚性结构的sql数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。Nosql数据库没有标准的查询语言(sql),因此进行数据库查询需要制定数据模型。许多Nosql数据库都有REST式的数据接口或者查询API。
相关数据库 | Neo4J、InfoGrid、Infinite Graph |
典型应用 | 社交网络,推荐系统等。专注于构建关系图谱 |
数据模型 | 图结构 |
强项 | 利用图结构相关算法。 |
弱项 | 需要对整个图做计算才能得出结果,不容易做分布式的集群方案。 |
因此,我们总结Nosql数据库在以下的这几种情况下比较适用:1、数据模型比较简单;2、需要灵活性更强的IT系统;3、对数据库性能要求较高;4、不需要高度的数据一致性;5、对于给定key,比较容易映射复杂值的环境。
原文链接:http://www.searchdatabase.com.cn/showcontent_52898.htm?lg=t
原文链接:https://www.f2er.com/nosql/204484.html