NoSQL学习系列之一, NoSQL简介
来源:互联网 发布:最新智能电视直播软件 编辑:程序博客网 时间:2024/05/16 09:13
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
- NoSQL学习系列之一, NoSQL简介
- redis系列之一:NoSql概述
- 04-NoSQL数据模型简介学习
- NoSQL简介
- NOSQL简介
- NoSQL简介
- NoSql简介
- NoSQL 简介
- NoSQL简介
- Nosql简介
- NoSQL 简介
- NoSQL简介
- nosql--简介
- NoSQL 简介
- NoSql简介
- NoSQL 简介
- NoSQL简介
- NoSql简介
- 一些luaqt的例子
- LDD3在Ubuntu下编译 scull例子时遇到的一些问题
- 保障电邮EMAIL通讯的安全性
- Xdb的重装问题 ,ORA-04098, ORA-00257 archiver error., library cache lock
- word通配符使用
- NoSQL学习系列之一, NoSQL简介
- SEO robots.txt 设置教程
- ACCESS高效分页
- 解决Eclipse中SVN图标不显示的问题
- 文件对比工具
- TreePanel的创建与应用(1)
- Oracle 常用SQL整理
- 经典的SQL语句 之一
- MTK编译