NoSQL简介

来自CloudWiki
跳转至: 导航搜索

什么是NoSQL

NoSQL,指的是非关系型的数据库 “non-relational”。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。区别于关系数据库,它们不保证关系数据的 ACID 特性。

NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

RDBMS VS NoSQL

在现代的计算系统上每天网络上都会产生庞大的数据量。

这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理。 1970年 E.F.Codd's提出的关系模型的论文 "A relational model of data for large shared data banks",这使得数据建模和应用程序编程更加简单。

RDBMS(关系型数据库)与NoSQL(非关系型数据库)的区别:

1.RDBMS:结构化组成,以行列的形式存储;使用固定的sql语言进行查询;有事务ACID特征;大量数据的读写效率比较低;数据结构的可扩展性差。

2.NoSQL:多种形式存储,文档,键值对等;没有固定的查询语言;只需要保证最终的一致性;大量数据读写效率较高;容易进行水平的扩展。

为什么使用NoSQL ?

在 90 年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是 静态网页,动态交互类型的网站不多。

Linux2022110201.png

到了最近 10 年,网站开始快速发展。火爆的论坛、博客、 sns 、微博逐渐引领 web 领域的潮流。在初 期,论坛的流 量其实也不大,如果你接触网络比较早,你可能还记得那个时候还有文本型存储的论坛程 序,可以想象一般的论坛 的流量有多大。


对数据库高并发读写的需求

web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。

对海量数据的高效率存储和访问的需求

类似Facebook,twitter,Friendfeed这样的SNS网站,每天用户产生海量的用户动态,以Friendfeed为例,一个月就达到了2.5亿条用户动态,对于关系数据库来说,在一张2.5亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。再例如大型web网站的用户登录系统,例如腾讯,盛大,动辄数以亿计的帐号,关系数据库也很难应付。

对数据库的高可扩展性和高可用性的需求

在基于web的架构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,你的数据库却没有办法像web server和app server那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移 ———————————————— 版权声明:本文为CSDN博主「囿于之间」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_43637366/article/details/113105005 原文链接:https://blog.csdn.net/qinluyu111/article/details/123698054

常见NoSQL数据库

KV存储数据库

典型代表 BerkeleyDB、MemcacheDB、Redis

特征 可以通过key快速查询到value。一般来说,存储不需要考虑value的格式。

-v形式的:memcached、redis适合储存用户信息,比如会话、配置文件、参数、购物车等等。这些信息一般都和ID(键)挂钩,这种情景下键值数据库是个很好的选择。

文档存储数据库

典型代表 MongoDB、CouchDB

特征 文档数据库一般用类似json的格式存储,存储的内容是文档型的。这样也就有机会对某些字段建立索引,实现关系数据库的某些功能。

列存储数据库

典型代表 Hbase、Cassandra、Hypertable 特征 按列存储数据,最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有着极大的IO优势。

图关系数据库

典型代表 Neo4J、FlockDB 特征 图形关系的最佳存储,使用传统关系数据库来解决的话性能低下,而且设计及其不方便。 区别 ———————————————— 版权声明:本文为CSDN博主「囿于之间」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_43637366/article/details/113105005

https://zhuanlan.zhihu.com/p/86129195

https://blog.51cto.com/u_13480443/2084481