NoSQL学习系列之一, NoSQL简介

0
分享 2015-12-07


NoSQL从几年前作为一个概念就已经被提出来了,对其常见的解释是“Non Relational”, 现在”Not only SQL”也被很多人接受了,不管使用什么样子的解释,从字面上看其出来的目的当然是针对于SQL关系型数据库了。我阅读了一些材料,之所以出现这个东东,还是得益于Web的发展。
随着Web2.0的快速发展,非关系型,分布式数据存储得到了快速的发展,他们不保证数据的ACID特性,这点是和关系型数据库最大的区别,他们关心的是高效率和高扩展性,当然高效率和高扩展性也是关系型数据库的目标,但是由于其要保证数据的ACID特性,势必导致其再效率上下滑。
传统关系型数据库的瓶颈:
传统的关系数据库具有不错的性能,高稳定型,久经历史考验,而且使用简单,功能强大,同时也积累了大量的成功案例。在互联网领域,MySQL成为了绝对靠前的王者,毫不夸张的说,MySQL为互联网的发展做出了卓越的贡献。
在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。
到了最近10年,网站开始快速发展。火爆的论坛、博客、sns、微博逐渐引领web领域的潮流。在初期,论坛的流量其实也不大,如果你接触网络比较早,你可能还记得那个时候还有文本型存储的论坛程序,可以想象一般的论坛的流量有多大。
NoSQL的优势:
1. 易扩展
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力
2. 大数据量,高性能
NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了。
3. 灵活的数据模型
NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的web2.0时代尤其
4. 高可用
NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用
从上面介绍的NoSQL的优势上看好像NoSQL替代SQL是不可避免的,实际上,NoSQL和SQL在关系上并不是敌对的,而是相辅相成的关系,SQL可以保证数据的ACID的原则,而NoSQL可以保证数据的高效率,比如在金融,银行等业务中,数据的一致性和原子性是第一位的,因此SQL更适合一些,而在发布公共服务的Web业务中,效率是放在第一位的,因此使用NoSQL更合适一些。当然了在一个包含这两种业务的系统中,把这两种技术结合起来发挥他们各自的优点岂不更美哉。
参考文章:
http://www.infoq.com/cn/news/2011/01/nosql-why


文章来源:http://blog.csdn.net/liufeng1980423/article/details/6290767

0 个评论

要回复文章请先登录注册