NoSQL大战RDB
来源:广州中睿信息技术有限公司官网
发布时间:2012/10/21 23:25:16 编辑:admin 阅读 2448
开篇:在Web2.0网站引起的高并发需求下,关系数据库(RDB)的ACID强制要求,犹如一把自宫之剑进退维谷可谓&ldquo沉舟侧畔千帆过,病树前头万木春&rdquo,NoSQL的出现,似乎是要革了
  开篇:
  
  在Web 2.0网站引起的高并发需求下,关系数据库(RDB)的ACID强制要求,犹如一把自宫之剑进退维谷;可谓“沉舟侧畔千帆过,病树前头万木春”,NoSQL的出现,似乎是要革了关系型数据库在互联网行业的命,以Google和Amazon推出BigTable和Dynamo为代表的各路NoSQL数据库风声水起。革命正在进行,作为一个IT人,再以“打酱油”的心态泰然自若,情何以堪啊!
  
  详细介绍:
  
  NoSQL概念在2009年被提了出来。NoSQL最常见的解释是“non-relational”,“Not Only SQL”也被很多人接受。(“NoSQL”一词最早于1998年被用于一个轻量级的关系数据库的名字。)
  
  NoSQL的核心应用多以key-value存储,当然还有其他的文档型的、列存储、图型数据库、xml数据库等。在NoSQL概念提出之前,这些数据库就被用于各种系统当中,但是却很少用于web互联网应用。比如cdb、qdbm、bdb数据库。
  
  1、RDB的瓶颈
  
  由网络数据库发展为关系型数据库,其性能、稳定性、可操作性、安全性等引领了一个时代,久经历史考验,获得了巨大的成功。而在以只读为主的互联网领域中,MySQL的高效查询性能使其成了绝对靠前的王者,并作出了巨大的贡献。如常见的WAMP结构或LAMP结构。
  
  在web 1.0年代,网站的访问量一般都不大,用单个数据库完全可以轻松应付。却多为静态网页,动态交互类型的网站不多;随着互联网的高速发展,在web 2.0出现的火爆论坛、博客、sns、微博等,其数据量的迅速膨胀引起了负责数据存储的后台RDB性能问题,于是程序员们结出的解决之道是:cache技术、分表、分区、垂直分割、水平分割、混合分割….,可悲的是这些技术都受限于RDB的ACID,却可伸缩性并不明显,现实需要一种新的技术来突破这种瓶颈--NoSQL。
  
  2、NOSQL的优势
  
  易扩展、可伸缩性强
  
  NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。
  
  大数据量,高性能
  
  NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。如:一般MySQL使用Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了。
  
  灵活的数据模型
  
  NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的web2.0时代尤其明显。
  
  高可用
  
  NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用。
  
  3、Oracle 发布NoSQL数据库
  
  Oracle 作为全球最大的关系型数据库提供商,在其产品链条中,也加入了NoSQL数据库这一环,称为NoSQL Database(名字起的有些搞笑)
  
  Oracle的这个NoSQL Database,是甲骨文Big Data Appliance的其中一个组件,Big Data Appliance是一个集成了Hadoop、NoSQL Database、Oracle数据库Hadoop适配器、Oracle数据库Hadoop装载器及R语言的系统。
  
  下面是NoSQL Database的特性简介:
  
  1.   数据模型简单 
  2.   
  3.   Key-Value式的存储,其中key由一级主要key和二次次要key组成
  4.   
  5.   由Java写成,支持基于Java API 的Put、Delete和GET操作
  6.   
  7.   扩展性强 
  8.   
  9.   支持自动地基于hash函数的数据分片策略
  10.   
  11.   提供基于数据节点拓扑结构和访问延迟的智能控制,以提供最佳的数据访问性能
  12.   
  13.   行为可预测性 
  14.   
  15.   提供ACID 的事务性支持,并且支持基于全局和单个操作的事务级别设置
  16.   
  17.   通过B-tree 数据结构构成的Cache层和高效的查询调度机制,提供可控的请求延时
  18.   
  19.   高可用性 
  20.   
  21.   没有单点故障
  22.   
  23.   提供内置且可配置的数据复制备份机制
  24.   
  25.   对单点或多点故障有很好的容错性
  26.   
  27.   通过跨数据中心的数据备份,提供数据的灾难恢复
  28.   
  29.   简单的管理与维护 
  30.   
  31.   除了命令行之外,还提供基于Web的界面管理工具
  32.   
  33.   提供对系统及数据节点的控制控制
  34.   
  35.   可以查看系统的拓扑结构、系统状态参数、当前负载情况、请求延迟记录、内部事件及通知等信息

本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。

联系我们CONTACT 扫一扫
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2