NoSQL开篇

来源:互联网 发布:淘宝天猫客服怎么找 编辑:程序博客网 时间:2024/05/14 22:02

大多数的技术问题,只要讲清楚2W1H(why、what、How),基本上就可以了,所以在讲述NoSQL的时候,我也是关注于这三个问题来展开的,即:

1、为什么要有NoSQL,它解决了什么问题?

2、NoSQL是什么?有哪些技术点?

3、结合NoSQL技术讲述其是如何解决这个问题的?

本文主要讲述Why这个问题。

关系型数据库(RDB)经过几十年的发展已经非常的成熟和稳定,基本上能解决大部分用户的需求,但互联网的迅速发展,对数据库提出了两个要求:

1、数据容量不能满足系统要求

2、性能不能满足要求,比如读写性能等

同时,互联网业务对数据库的一致性不是那么care,其更关心的是可用性

于是RDB就提出了一些解决思路:

1、分库分表,也就是说将不同的数据库和表分布到不同的机器,打个比方,某网站每个月入库1TB,如果单个数据库节点的容量只能满足一个月的存储要求,那么我就可以分表,一个月增加一台机器,每一个机器建立一个表存储当月的数据,当然查询的时候也需要根据不同的时间段(或其它属性)分布到不同的节点上查询(这个需要一个类似proxy的网元或中间件来解决)

2、采用主写备读的方式,这种情况下适合那种写少读多的情况,主节点将数据备份到多个备节点上,写操作在主节点运行,而读都是在备节点上读取

虽然RDB做了很多工作,从目前看来也基本解决了这个问题,但这种RDB集群的方案的成本还是过高,互联网需要的一个和业务紧密结合的廉价的解决方案,所以NoSQL就产生了!