NoSQL中文名为:非关系型数据库;英文名为:Not Only SQL / non-relational
1、基本含义
NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。(web2.0见下篇文章)(其中SNS指的是社交软件和社交网站)
2、分类
(1)键值(Key-Value)存储数据库
如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB
(2)列存储数据库
如:Cassandra, HBase, Riak
(3)文档型数据库
如:CouchDB, MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。
(4)图形(Graph)数据库
如:Neo4J, InfoGrid, Infinite Graph。
3、特点
NoSQL并没有一个明确的范围和定义,但是他们都普遍存在下面一些共同特征:
(1)易扩展
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间,在架构的层面上带来了可扩展的能力
(2)大数据量,高性能
NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用Query Cache。NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说性能就要高很多。
(3)灵活的数据模型
NoSQL无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是——个噩梦。这点在大数据量的Web 2.0时代尤其明显。 [3]
(4)高可用
NoSQL在不太影响性能的情况,就可以方便地实现高可用的架构。比如Cassandra、HBase模型,通过复制模型也能实现高可用。
以上只是对NoSQL一个简单的描述,仅供参考。谢谢