在目前的企业IT架构中,系统管理员以及DBA都会考虑使用NoSQL数据库来解决RDBMS所不能解决的问题,特别是互联网行业。传统的关系型数据库主要以表(table)的形式来存储数据,而无法应对非结构化数据的挑战。在进行数据标准化的过程中,关系型数据库性能遭遇了瓶颈。

NoSQL顾名思义就是Not-Only SQL,它可以作为关系型数据库的良好补充。在TechTarget数据库之前的报道中,我们也对NoSQL数据库的应用场景做了详细的介绍。NoSQL不像传统的关系型数据库,其种类繁多,且各有各的优势和缺点,对于DBA来说如何区分彼此的不同是一件比较头痛的工作。在本文中,我们就将进一步为您接受关于NoSQL数据库的分类以及各自的优缺点。

NoSQL数据库的四大家族

  • 键值(Key-Value)存储数据库

这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。

相关数据库

Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB

典型应用

内容缓存,适合混合工作负载并扩展大的数据集

数据模型

一系列键值对

优势

快速查询

劣势

存储的数据缺少结构化

  • 列存储数据库

这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。

相关数据库

Cassandra, HBase, Riak

典型应用

分布式的文件系统

数据模型

以列簇式存储,将同一列数据存在一起

优势

查找速度快,可扩展性强,更容易进行分布式扩展

劣势

功能相对局限

  • 文档型数据库

   文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。

相关数据库

CouchDB、MongoDB

典型应用

Web应用

数据模型

一系列键值对

优势

数据结构要求不严格

劣势

查询性能不高,而且缺乏统一的查询语法

  • 图形(Graph)数据库

图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。

相关数据库

Neo4J、InfoGrid、Infinite Graph

典型应用

社交网络,推荐系统等。专注于构建关系图谱

数据模型

图结构

强项

利用图结构相关算法。

弱项

需要对整个图做计算才能得出结果,不容易做分布式的集群方案。

因此,我们总结NoSQL数据库在以下的这几种情况下比较适用:1、数据模型比较简单;2、需要灵活性更强的IT系统;3、对数据库性能要求较高;4、不需要高度的数据一致性;5、对于给定key,比较容易映射复杂值的环境。

最新文章

  1. JBoss AS
  2. android support的作用及其常见错误的解决
  3. 【Spark】---- Spark 硬件配置
  4. uva133-S.B.S.
  5. iOS 生成.a文件
  6. 使用CSS3伸缩盒实现图片垂直居中
  7. SQL Server 数据库DML触发器 【一】
  8. c基础知识复习
  9. MySQL安装之zip格式
  10. OC实现同步访问属性
  11. spacemacs 初始安装报错
  12. 简单了解C语言内嵌汇编
  13. PHPCMS V9 任意文件下载(Windows)
  14. 【nowcoder】 4th T2 区间
  15. hive -f 传递参数
  16. 【PAT】B1063 计算谱半径(20 分)
  17. python3基础操作
  18. myeclipse2014安装aptana3.4.0插件(转)
  19. windows7环境下使用pip安装MySQLdb for python3.7
  20. Java EE之JSTL(下)

热门文章

  1. 前端 HTML标签属性
  2. Python递归优化方法
  3. sed 操作命令
  4. oracle sql 游标的简单用法(tip:sql中两个单引号表示一个单引号)
  5. [ROS]一些传感器数据读取融合问题的思考
  6. Openresty 安装第三方插件
  7. Python 数据结构 链表
  8. map的使用方式之一。
  9. js计算最大公约数和最小公倍数
  10. svn加锁设置