NoSQL优缺点

** 优点:**
易扩展 NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样 就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。
大数据量,高性能,快速读写 NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得 益于它的无关系性,数据库的结构简单。一般MySQL使用Query Cache,每次表的更新Cache就失效,是一种大粒 度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的Cache是记录级的,是一种细粒度的 Cache,所以NoSQL在这个层面上来说就要性能高很多了。 灵活的数据模型 NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库 里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的 web2.0时代尤其明显。
高可用 NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复 制模型也能实现高可用。
低廉的成本
这是大多数分布式数据库共有的特点,因为主要都是开源软件,没有昂贵的License成本;
** 缺点:**
但瑕不掩瑜,NoSQL数据库还存在着很多的不足,常见主要有下面这几个: 不提供对SQL的支持:如果不支持SQL这样的工业标准,将会对用户产生一定的学习和应用迁移成本; 支持的特性不够丰富:现有产品所提供的功能都比较有限,大多数NoSQL数据库都不支持事务,也不像MS SQL Server和Oracle那样能提供各种附加功能,比如BI和报表等; 现有产品的不够成熟:大多数产品都还处于初创期,和关系型数据库几十年的完善不可同日而语;

NoSQL适用的场景

1、数据库表schema经常变化 比如在线商城,维护产品的属性经常要增加字段,这就意味着ORMapping层的代码 和配置要改,如果该表的数据量过百万,新增字段会带来额外开销(重建索引等)。NoSQL应用在这种场景,可以 极大提升DB的可伸缩性,开发人员可以将更多的精力放在业务层。
2、数据库表字段是复杂数据类型 对于复杂数据类型,比如SQL Sever提供了可扩展性的支持,像xml类型的字段。很多用过的同学应该知道,该字 段不管是查询还是更改,效率非常一般。主要原因是是DB层对xml字段很难建高效索引,应用层又要做从字符流到 dom的解析转换。NoSQL以json方式存储,提供了原生态的支持,在效率方便远远高于传统关系型数据库。
3、高并发数据库请求
此类应用常见于web2.0的网站,很多应用对于数据一致性要求很低,而关系型数据库的事务以及大表join反而成 了”性能杀手”。
4、海量数据的分布式存储
海量数据的存储如果选用大型商用数据,如Oracle,那么整个解决方案的成本是非常高的,要花很多钱在软硬件 上。NoSQL分布式存储,可以部署在廉价的硬件上,是一个性价比非常高的解决方案。 并不是说NoSQL可以解决一切问题,像ERP系统、BI系统,在大部分情况还是推荐使用传统关系型数据库。主要的 原因是此类系统的业务模型复杂,使用NoSQL将导致系统的维护成本增加。

NoSQL分类

NoSQL 键值(key-Value)存储数据库 列式存储数据库 文档型数据库 图形(Graph)数据库
优势 快速查询 查找速度快,可扩展性强,更容易进行分布式扩展 数据结构要求不严格 利用图结构相关算法
劣势 存储的数据缺少结构化 功能相对局限 查询性能不高,而且缺乏统一的查询语法 需要对整个图做计算才能得出结果,不容易做分布式的集群方案。
相关产品 Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB Cassandra, HBase, Riak CouchDB、MongoDB Neo4J、InfoGrid、Infinite Graph
应用 内容缓存,主要用于处理大量数据的高访问负载 分布式的文件系统 Web应用(与Key-Value类似,Value是结构化的) 社交网络
数据模型 键值对 以列簇式存储,将同一列数据存在文件系统中 一系列键值对 图结构

NoSQL数据库优缺点相关推荐

  1. 关系型数据库与NoSql数据库的优缺点

    1.关系型数据库与NoSql数据库的比较 一.并发支持 关系型数据库:通过事务和锁来支持并发,高并发情况下,执行效率较低. NoSql:打破了传统关系型数据库范式的约束和事务一致性,因此并发性能高. ...

  2. 企业级nosql数据库应用与实战-redis

    企业级nosql数据库应用与实战-redis 项目场景: 随着互联网2.0时代的发展,越来越多的公司更加注重用户体验和互动,这些公司的平台上会出现越来越多方便用户操作和选择的新功能,如优惠券发放.抢红 ...

  3. Redis面试连环问:集群、复制以及与其他NOSQL数据库的区别?

    欢迎关注方志朋的博客,回复"666"获面试宝典 前言 面试官问:您熟悉redis?搭建过redis集群?rediscluster底层的主从复制rdb如何工作的?-- 接下来,就是一 ...

  4. 转:几款主流 NoSql 数据库的对比

    转自:http://www.cnblogs.com/vajoy/p/5471308.html 最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoS ...

  5. NoSql数据库使用半年后在设计上面的一些心得

    NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...

  6. 云计算背后的秘密(6)-NoSQL数据库的综述

    我本来一直觉得NoSQL其实很容易理解的,我本身也已经对NoSQL有了非常深入的研究,但是在最近准备YunTable的Chart的时候,发现NoSQL不仅非常博大精深,而且我个人对NoSQL的理解也只 ...

  7. HBase、Redis、MongoDB、Couchbase、LevelDB 五款主流NoSQL数据库大比拼

    在 HBase.Redis.MongoDB.Couchbase.LevelDB 五款较主流的数据库产品中,本文将主要对它们进行分析对比. 鉴于缺乏项目中的实战经验沉淀,本文内容和观点主要还是从各平台资 ...

  8. nosql数据库学习总结

    大数据时代的数据库选择:SQL还是NoSQL? 执行大数据项目的企业面对的关键决策之一是使用哪个数据库,SQL还是NoSQL?SQL有着骄人的业绩,庞 大的安装基础;而NoSQL正在获得可观的收益,且 ...

  9. NoSQL数据库_Redis

    文章目录 一.特点 二.与关系数据库的比较 三.NoSQL的四大类型 1.键值数据库 2.列族数据库 3.文档数据库 4.图数据库 四.NoSQL的三大基石 1.CAP 2.BASE 3.最终一致性 ...

最新文章

  1. flask-WTF和sqlalchemy结合使用并实现前端页面登录(综合使用)
  2. windows环境下搭建rabbitMQ开发环境
  3. 如何安装mysql5.7.9_安装mysql-5.7.9-winx64
  4. 将权限授予文件夹和程序集
  5. 11.04.30 半夜清晨
  6. 计算机组织与结构实验,计算机组织与结构实验报告 CQUPT
  7. 学习有五个层次和境界
  8. html输出json对象属性值,用javascript中的HTML元素值构建JSON对象
  9. ES6更新的3种精简化代码,(1.速写属性 2.速写方法 3.模板字符串)
  10. 百问 FreeSwitch(整理版)
  11. 形如in (‘111,222,333‘) 的 ,Oracle的in函数(报错:无效数字)
  12. 从小米5看雷军式“互联网思维”的黄昏
  13. php图片不显示怎么处理,如何解决php图片因存在错误而无法显示
  14. Linux7 core是什么系统,Centos7+.NET CORE初探
  15. win10彻底关闭休眠状态(1909以上版本)
  16. --fiddler--实战--抓包到底干嘛用?
  17. R语言的帮助使用和图形功能简介
  18. Linux命令,一学就废?是的!
  19. python语言正确的标识符是__python基础知识:python的标识符和关键字
  20. SGU 187 Twist and whirl - want to cheat(splay)

热门文章

  1. Win10 64位系统安装Microsoft Visual Studio和Intel Fortran(非正式名称)
  2. ★《唐琅探案》后记【2】
  3. 为PostgreSQL配置work_mem
  4. 街都VR:景区使用360全景制作的八个优势
  5. 小谈网易云音乐----API
  6. 1163:阿克曼(Ackmann)函数
  7. iOS开发之开源项目库总汇
  8. 深入浅出matplotlib(12):椭圆示意图
  9. 实现图片加载先模糊后清晰的效果
  10. 国内一元夺宝行业兴起 需理性区别对待