平常我们所接触最多的就是关系型数据库了,比如mysql,oracle等,它们都是通过表之间关系来进行构建的,逻辑结构清晰,不复杂
而随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型和动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展,NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题
下面就好好聊聊它,开搞!
正文
NoSQL最常见的解释是“non-relational”, “Not Only SQL”也被很多人接受。NoSQL仅仅是一个概念,泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的 ACID 特性
NoSQL有 易扩展 的优点,NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的 关系型特性,数据之间无关系,这样就非常容易扩展。无形之间也在架构的层面上带来了可扩展的能力
大数据量,高性能,NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀,这得益于它的无关系性,数据库的结构简单
非关系型数据主要分为如下几类
- 键值(Key-Value)存储数据库:这一类数据库主要会使用到一个 哈希表,这个表中有一个特定的键和一个指针指向特定的数据
- 列存储数据库:这部分数据库通常是用来应对分布式存储的海量数据,键仍然存在,但是它们的特点是指向了多个列,这些列是由列家族来安排的
- 文档型数据库:该类型的数据模型是 结构化的文档,半结构化的文档 以及特定的格式存储,比如 JSON。文档型数据库可以看作是键值数据库的升级版,允许嵌套键值,在处理网页等复杂数据时,文档型数据库比传统键值数据库的查询效率更高
- 图形(Graph)数据库:它是使用灵活的 图形模型,并且能够扩展到多个服务器上